Python 我的代码突然停止在循环的中间。
当我执行它时,只有大数字的输出如下: 年利率=0.2 第1个月的剩余余额为5073.33 第2个月的剩余余额为5147.89 第3个月的剩余余额为5223.69 第4个月的剩余余额为5300.75 第5个月的剩余余额为5379.1 它在第5个月停止,而不是第12个月 我不知道为什么余额较低,例如50,它会执行整个代码。我把它附在这里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
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)