定义
递归函数就是在定义的函数体中,调用了它自身。
然而,我们不能让它一次次无休止地调用,这样会形成一个死循环,于是我们需要一个临界条件,让它达到那个条件便停下循环。
于是,由此可以退出每个递归函数必须包括以下两个部分:
- 终止条件
- 递推关系(用数学角度理解就是函数的映射关系)
例子
#用递归的方法求阶乘
def fact(n):
if n == 1:return 1
else:return n*fact(n-1)#n*(n-1)*(n-2)*(n-3)……
fro i in range(1,9+1):#输出1到9的阶乘
print("{}!=".format(i),fact(i))
可见,在定义中,“ n*fact(n-1)”又调用了该函数,这种函数的嵌套,就是递归函数;而“n==1”则是它的结束条件,当“n-1 == 1”时,递归变停止。