2014-08-30 212 views
-1

我無法從這個頁面 Here初學者的Python行使

這裏是我的代碼解決問題2:

#Problem set 1 b 

out_bal = float(raw_input("Enter the outstanding balance on your credit card: ")) 
ann_interest = float(raw_input("Enter the annual interest rate as a decimal: ")) 

min_pmnt = 10 
months = 1 
prev_bal = out_bal 

month_interest = ann_interest/12.0 
updated_bal = prev_bal * (1 + month_interest) - min_pmnt 

while out_bal > 0: 
     for i in range(1,13): 
       out_bal = updated_bal 
       prev_bal = out_bal 
       months += 1 
     if out_bal <= 0: 
       break 
     else: 
      min_pmnt = min_pmnt + 10 
      months = 0 
      print out_bal 

print "RESULT" 
print "Monthly payment to pay off debt in 1 year: $", min_pmnt 
print "Number of months needed: ", months 
print "Balance: ", round(out_bal, 2) 

我想利用1200和0.18的前兩個輸入,分別。但是,當我這樣做時,程序會在我的while循環中被捕獲並保持打印1208.00。

當我看到自己的代碼,它似乎應該工作。但我想我沒有正確使用prev_bal變量。

此外,它執行數學運算的方式,我希望它第一次通過循環,但它看起來好像它沒有添加10 min_pmnt並再次通過循環。它似乎只是反覆使用10次。

我怎麼寫這個,所以它實際上添加10並再次執行循環?

謝謝!

回答

0

您的問題是updated_bal沒有更改,但是您每次迭代時都將out_bal設置爲它,然後調整out_bal上的循環變爲減小值。

它在我看來像你在考慮updated_bal改變每個循環迭代,基於其組成部分。爲了使其發揮作用,您需要改用每次計算更新餘額的函數。