为什么第二个循环不起作用

时间:2017-02-28 00:30:40

标签: python

第二个循环不起作用。当我编译它不输出任何文本,它只是要求输入和停止

这意味着第二个循环没有被执行,只是第一个循环,但我不知道为什么

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 

不能让它运行,为什么?

2 个答案:

答案 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%的利息”。