递归函数
如果一个函数的函数体调用了该函数本身,这个函数就叫做递归函数
递归函数构造
递归的调用和终止条件
递归的调用过程
每递归调用一次函数,都会在栈内存分配一个栈帧,每执行一次函数都会释放内存
优缺点
优点:代码简洁,思路清晰
缺点:占用内存,效率低下
案例:阶乘
# 阶乘 如:6!= 6x5x4x3x2x1 = 720
def fac(n):
if n == 1:
return 1 # 1的阶乘等于1
else:
return n*fac(n-1)
print(fac(6)) #720