Python for循环计数器错误
我正在尝试写一段简单的代码,来计算由于每天的利息,存款达到某个金额需要多少天。下面的代码在IDLE中运行时没有报错,但计数器的结果却是0。请问我可能遗漏了什么?
def main():
# irrelevant code elided by msw, Bal, Int and Tar are numeric
counter = 0
for i in range(0):
if (Bal * Int) == Tar:
print '1'
else:
counter + 1
print counter
7 个回答
2
In [5]: def test():
...: for i in range(0):
...: return '1'
...:
...:
In [6]: x = test()
In [7]: print x
------> print(x)
None
看到返回值是'None'。我不太清楚你想做什么。不过基本的错误在于你使用的range(x)函数的参数。range(0)总是返回一个空列表。
3
我认为计算带利息的最终余额的公式是:
Final = Principal * ( 1 + interest ) ** interest_period
假设我这个理解是对的,那么你可以通过以下方式找出需要多少个利息周期:
def how_long(start_money, interest_rate, final_money):
day = 0
money = start_money
while True:
if money >= final_money:
break
day += 1
money = start_money * (1 + interest_rate)**day
return day, money
6
我不太明白你这个循环想表达什么:
for i in range(0):
if (Bal * Int) == Tar:
print '1'
else:
counter + 1
range(0)
是一个空列表,所以这个循环根本不会执行。counter + 1
只是计算比 counter 多 1 的值,并不会让 counter 增加,你可能是想用counter += 1
。- 循环里面没有任何东西在每次运行时会改变,所以如果你真的进入了这个循环,它会变成一个无限循环。