2017-03-16 4 views
1

私は、次のループをリセットすることなく、毎回その値に応じて値を加算または減算して「バランス」変数を​​変更する必要があります。
現在、指定された値を加算または減算して正しい数値を返しますが、次のループでは、前のループの新しい値を使用する代わりに元のベース値を使用します。バランス変数は各ループの後にリセットを維持します

import time 

print ("Welcome to balance tracker!") 
sBal=float(input ("Starting balance: ")) 
float(sBal) 
transactionAmounts = [] 
transactionTypes = [] 
print ("Your current balance is", '$',sBal) 
while True: 
    input("Press enter to continue") 
    print (""" 
     ------------ 
     [A]ddition 
     [S]ubtraction 
     [H]istory 
     [I]nformation 
     [Q]uit 
      ------------ 
      """) 

    choice=input("What would you like to do? ") 
    choice = choice.upper() 

    if choice == "A": 
     aval=float(input ("Enter amount you would like to add here: ")) 
     nBal=(sBal)+(aval) 
     transactionTypes.append('Addition') 
     transactionAmounts.append(float(aval)) 
     balance = float(sBal) + aval 
     print ("Your current balance is $",balance) 
    elif choice == "S": 
     aval=input("Enter amount you would like to subtract here: ") 
     nBal=float(sBal)-float(aval) 
     transactionTypes.append('Subtraction') 
     transactionAmounts.append (float(aval)) 
     balance = float(sBal) - aval 
     print ("Your current balance is $",balance) 

    elif choice == "H": 
     aCount = 1 
     tCount = 0 
     for i in transactionAmounts: 
      print ('Transaction',aCount,':',transactionTypes[tCount],i) 
      aCount = aCount + 1 
      tCount = tCount + 1 


    elif choice == "Q": 
     break 

    else: 
     print ("invalid choice") 

答えて

0

あなたの問題を解決するには、あなたの額にあなたの追加SBAL(開始バランス)、毎回残高の変数を割り当てるときに、彼らはこれがバランスを常に設定することが原因になっている...追加したいということです追加された金額のプラスまたはマイナスの開始残高に戻ります。

balance = float(input("Starting balance:  ")) #line 5 
float(sBal) #<<<can be deleted #line 6 

また、sBalをコールバランスと呼ぶコードのどこでも変更することを忘れないでください。

print("Your current balance is ", "$", difference) #line 9 

balance = float(balance) (+ or -) aval #lines 30 and 37 

また、決して呼び出されないので、あなたのnBal(新天びん)を削除することができます。

関連する問題