我看了一本书上的一个算法后,照方法用python写时发现一个问题,不知道出在哪,
我将它简化成以下的问题:
def test(a):
if a>0:
a-=1
print(a,'\n','-')
test(a)
else: pass
print(a)
输入一个数字,当数字大于零时减一,然后重复带入原函式,直到零。
执行带入3:
test(3)
结果:
2
-
1
-
0
-
0
0
1
2
跑到0时,应该要停止了,可是他继续跑,结果最后答案是2
如果将重复带入的方式改成while的话就没问题:
def test2(a):
while a>0:
a-=1
print(a,'\n','-')
print(a)
一样带入3执行:
test2(3)
结果:
2
-
1
-
0
-
0
最后答案是0,没问题。
想问重复带入函式的这方法问题出在哪,谢谢。