def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
def rec():
print fact(5)
rec()
Run Code Online (Sandbox Code Playgroud)
[来自新手的问题]
Python脚本.
这个问题在很长一段时间内仍然存在,让我解释一下到目前为止我对递归的理解.
在rec()函数中,我再调用了一个函数fact(5),现在该过程转到了fact(n)函数.
函数调用自身直到基本情况.
在其他部分:
5*事实(4)
5*4*事实(3)
5*4*3*事实(2)
5*4*3*2*事实(1)
现在n的值变为0,并返回1
我的问题是,为什么事实(n)函数返回120而不是1.
def check(x):
if x == 1:
return 10
else:
return 20
print check(1) // Prints 10
print check(3) // Prints 20
Run Code Online (Sandbox Code Playgroud)
我希望你理解我的问题.
谢谢.