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

Python 我的代码突然停止在循环的中间。,python,loops,Python,Loops,当我执行它时,只有大数字的输出如下: 年利率=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("annualInt

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

年利率=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
balance0=float(输入(“balance=”))
annualInterestate=浮动(输入(“annualInterestate=”))
月付款=10
余额=0
月份=1
而(一):
余额=余额0
而月份
似乎在我的机器上工作。
运行python 2.7/12 mac osx sierra


但是,由于
while(1)
,它永远不会结束。可以删除它,脚本将运行相同的代码。

对于您的代码,例如
balance=50
&
annualInterestate=0.2
,当它运行超过一个月
5
时,我会得到负数。 同样,但如果余额=20
&
annualInterestate=0.2
,我在过去一个月运行时会得到负数
2
。小于100的数字之间存在相关性


但是,在每次测试中,您的代码从未中断或抛出任何错误,而且数学计算是合理的。

您是否对代码进行了几次迭代,以查看基本计算是否有效?是的,是的,如果我将balance=50改为一个更大的数字,它不会为我留下循环,如果我放入了一个较大的平衡。看起来对于大的数字,余额永远不会低于0,因此外部循环永远不会存在。对我来说也适用,但它最终会产生一个无限循环,因为
else
分支中没有
break
>> 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)