第二个循环不起作用。当我编译它不输出任何文本,它只是要求输入和停止
这意味着第二个循环没有被执行,只是第一个循环,但我不知道为什么
balance0 = float(input("balance = " ))
annualInterestRate = float(input("annualInterestRate = " ))
monthlyPayment = 10
balance = 0
month = 1
while (0):
balance = balance0
while month <= 12:
balance1= (balance + annualInterestRate * balance/12)
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
循环
while month <= 12
不能让它运行,为什么?
答案 0 :(得分:2)
实际上你的外环并没有运行。你有:
while (0):
由于(0)
永远不是真正的条件,因此该循环永远不会执行。基于这样一个事实,即如果您在某些条件满足时终止了break
,则可能意味着:
while (1):
另外,while True:
是generally equivalent,可能更惯用。
答案 1 :(得分:0)
其他人已经抓住了主要问题。您也忽略了重置月份计数器。结果是,如果10美元/月不能偿还贷款,那么你将进入无限循环。试试这个:
while (True):
balance = balance0
for month in range(1, 12+1):
当您知道需要迭代的次数时,请使用 for 语句。
此外,您可能会使用更好的客户提示: annualInterestRate 是一个变量风潮,很难让平凡的人阅读。将其更改为“年利率;例如0.12表示12%的利息”。