2017-03-16 65 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(起始餘額)的金額,他們想補充...這導致天平始終設置回到起始餘額加上或減去加入的金額。嘗試定義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(新餘額),因爲它永遠不會被調用。