递归函数
递归函数是在其定义中调用自身的函数。例如,由 factorial(n) = n*(n-1)*(n-2)*...*3*2*1
定义的数学函数 factorial。可编程为
def factorial(n):
#n here should be an integer
if n == 0:
return 1
else:
return n*factorial(n-1)
这里的输出是:
factorial(0)
#out 1
factorial(1)
#out 1
factorial(2)
#out 2
factorial(3)
#out 6
正如所料。请注意,此函数是递归的,因为第二个 return factorial(n-1)
,函数在其定义中调用自身。
一些递归函数可以使用 lambda 实现,使用 lambda 的阶乘函数将是这样的:
factorial = lambda n: 1 if n == 0 else n*factorial(n-1)
该功能输出与上述相同。