我的代码突然停在循环中间

时间:2017-02-28 11:39:21

标签: python loops

当我执行它时,只有大数字的输出就像:

annualInterestRate = 0.2 剩余的第1个月是5073.33 剩余的第2个月是5147.89 剩余的第3个月是5223.69 剩余的第4个月是5300.75 剩余的第5个月是5379.1

它在第5个月而不是第12个月停止 我不知道为什么低平衡,例如50,它确实执行整个代码。在这里我附上它。

balance0 = float(input("balance = " ))
annualInterestRate = float(input("annualInterestRate = " ))
monthlyPayment = 10
balance = 0


month = 1
while (1):
 balance = balance0
 while month <= 12:
    balance1= round((balance + annualInterestRate * balance/12), 2)

    balance1 = balance1 - (monthlyPayment)
    print("Remaining balance month " , month, " is ", balance1)
    balance = balance1
    month += 1
 if balance < 0:
       print("Lowest payment: ", monthlyPayment)
       break

 else: 
     monthlyPayment += 10

2 个答案:

答案 0 :(得分:0)

>> balance = 5000
>> annualInterestRate = 0.2
('Remaining balance month ', 1, ' is ', 5073.33)
('Remaining balance month ', 2, ' is ', 5147.89)
('Remaining balance month ', 3, ' is ', 5223.69)
('Remaining balance month ', 4, ' is ', 5300.75)
('Remaining balance month ', 5, ' is ', 5379.1)
('Remaining balance month ', 6, ' is ', 5458.75)
('Remaining balance month ', 7, ' is ', 5539.73)
('Remaining balance month ', 8, ' is ', 5622.06)
('Remaining balance month ', 9, ' is ', 5705.76)
('Remaining balance month ', 10, ' is ', 5790.86)
('Remaining balance month ', 11, ' is ', 5877.37)
('Remaining balance month ', 12, ' is ', 5965.33)

似乎可以在我的机器上工作。 运行python 2.7 / 12 mac osx sierra

然而,由于while(1),它永远不会完成。这可以删除,脚本也会运行。

答案 1 :(得分:0)

准确地使用您的代码,例如balance=50&amp; annualinterestrate=0.2,我在过去一个月5时收到负数。 同样的,但有balance=20&amp; annualinterestrate=0.2,我在过去一个月2时收到负数。数字之间存在相关性&lt; 100。

但是,每次测试时,您的代码都不会破坏或丢失任何错误,数学运算正确。