我在解决本页的问题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\u bal变量。你知道吗
而且,它的运算方式和我期望的一样,它第一次通过循环,但似乎没有加上10分钟,再次通过循环。好像是用了10次又一次。你知道吗
我如何写这个,使它实际上加10,然后再次执行循环?你知道吗
谢谢!你知道吗
你的问题是
updated_bal
没有改变,但是每次迭代时你都要将out_bal
设置为它,然后调节out_bal
上的循环值变小。你知道吗在我看来,您似乎认为每个循环迭代的
updated_bal
都会根据其组成部分进行更改。为了使其工作,您需要使用一个函数来计算每次更新的余额。你知道吗相关问题 更多 >
编程相关推荐