演示
def run(n):
if n>2:
n-=1
run(n)
print(n)
run(4)
2
2
3
运行流程:
1.进入run方法,判断n是大于2的,执行n-=1,此时n=3,run(3)
2.n=3,执行run方法,判断n是大于2的,执行n-=1,此时n=2,run(2)
3.n=2执行run方法,判断n是小于2的,此时不会进入if,执行 print(n)
4.执行完 print(n),跳转调用处也就是第4行的run(n),拿到的n=2,再执行 print(n)
5.执行完 print(n),跳转调用处也就是第4行的run(n),拿到的n=3,再执行 print(n)

def run(n):
if n>2:
n-=1
run(n)
else:
print(n)
run(4)
2
运行流程:
1.进入run方法,判断n是大于2的,执行n-=1,此时n=3,run(3)
2.n=3,执行run方法,判断n是大于2的,执行n-=1,此时n=2,run(2)
3.n=2执行run方法,判断n是小于2的,此时不会进入if,进入 else执行 print(n)
4.执行完 print(n),跳转调用处也就是第4行的run(n),此时n=2,由于此时 print(n)在else里,所有不执行
5.接着的不执行,跳转调用处也就是第4行的run(n),此时n=3,由于此时 print(n)在else里,所有不执行

递归运算
def mysum(n):
if n > 0:
return mysum(n - 1)+n
else:
return 0
print(mysum(3))
6
def jiecheng(n):
result=0
if n > 1:
result = n * jiecheng(n - 1)
return result
else:
return 1
print(jiecheng(3))
6