初学者Python练习

时间:2014-08-30 23:52:55

标签: python loops

我无法从此页面解决问题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并再次执行循环?

谢谢!

1 个答案:

答案 0 :(得分:0)

您的问题是updated_bal没有变化,但每次迭代时都会为其设置out_bal,然后调整out_bal上的循环值会降低

在我看来,您正在考虑updated_bal根据其组成部分对每个循环迭代进行更改。为了实现这一点,您需要使用每次计算更新余额的函数。