递归:就是自己去引用自己!
递归式函数:在函数中自己调用自己!
无穷递归:如果这个函数被调用,程序的内存会溢出,效果类似于死循环
递归是解决问题的一种方式,它和循环很像
它的整体思想是,将一个大问题分解为一个个的小问题,直到问题无法分解时,再去解决问题
递归式函数的两个要件
1.基线条件
- 问题可以被分解为的最小问题,当满足基线条件时,递归就不在执行了
2.递归条件
- 将问题继续分解的条件
递归和循环类似,基本是可以互相代替的
1.循环编写起来比较容易,阅读起来稍难
2.递归编写起来难,但是方便阅读
例子:
该函数用来求任意数的阶乘
参数:
n 要求阶乘的数字
def a(n):
if n == 1 : # 基线条件 判断n是否为1,如果为1则此时不能再继续递归
return 1 # 1的阶乘就是1,直接返回1
return n * a(n-1) # 递归条件 递归式函数:在函数中自己调用自己!
print(a(4)) # 4*3*2*1