我看了一本书上的一个算法后,照方法用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,没问题。
想问重复带入函式的这方法问题出在哪,谢谢。