2017-07-22 180 views
0

這樣做的目標是定期爲每個帳戶輸入一個金額和日期。這些帳戶是靜態的(但可以附加更多)。我想要做的是循環通過每個帳戶,併爲每個帳戶輸入金額和日期。我做錯了什麼,我認爲在增量線,並可能追加線通過另一個列表遞增多個值到Python列表

之後,我想以一種合理的方式將結果打印到屏幕上(我知道我有什麼是不正確的並不會以合理的方式顯示)

任何想法?由於

account = ['401k', 'RothIRA', 'HSA'] 
amount = [] 
date = [] 

while True: 
    print('Enter the amount for your ' + account[0] + ' account') 
    act = input() 
    amount.append(act) 
    print('Enter the date for this total') 
    dt = input() 
    date.append(dt) 
    account[] += 1 
    if act == '': 
     break 


print(account, amount, date) 
+0

您的解決方案正在爲字典尖叫。我強烈建議你使用字典來製作這個。 – idjaw

+0

不需要'account [] + = 1'。當你添加列表大小時會自動增加。 – ksai

+0

@idjaw謝謝,我試過了一本字典,但沒有得到太遠的結果,要麼 – JD2775

回答

1

我想這是你想要做什麼:

i = 0 

while i < len(account): 
    print('Enter the amount for your ' + account[i] + ' account') 
    act = input() 
    amount.append(act) 
    print('Enter the date for this total') 
    dt = input() 
    date.append(dt) 
    i += 1 

這是更好地使用for循環如下。

for i in account: 
    print ('Enter amount for your',i,'account') 
    act = input() 
    amount.append(act) 
    print ('Enter date') 
    dt = input() 
    date.append(dt) 

此外,您的所有列表(帳戶,金額,日期)通過索引鏈接。使用字典與其他人發佈一樣更清晰。

1

在你的數據結構略有變化後:

account={ '401K': { 'amount' : 0, 'date': 0 }, 
      'ROthIRA': { 'amount':0, 'date': 0}, 
      'HSA': { 'amount': 0, 'date': 0} } 

for eachKey in account.keys: 
    account[eachKey]['amount'] = input() 
    account[eachKey]['date'] = input() 


print account 
+0

謝謝你們倆。很顯然,我需要查閱字典以使這項工作更好。謝謝你們的代碼示例 – JD2775

相關問題