我无法从此页面解决问题2 Here
这是我的代码:
#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和.18。但是,当我这样做时,程序会在我的while循环中被捕获并保持打印1208.00。
当我自己阅读代码时,它似乎应该正常工作。但我认为我没有正确使用prev_bal变量。
此外,它正在按照我预期的方式执行数学运算,直到它第一次通过循环,但似乎它没有向min_pmnt添加10并再次循环。好像只是一遍又一遍地使用10个。
我怎么写这个,所以它确实添加10并再次执行循环?
谢谢!
答案 0 :(得分:0)
您的问题是updated_bal
没有变化,但每次迭代时都会为其设置out_bal
,然后调整out_bal
上的循环值会降低
在我看来,您正在考虑updated_bal
根据其组成部分对每个循环迭代进行更改。为了实现这一点,您需要使用每次计算更新余额的函数。