在函数内部,可以调用其他函数。如果一个函数在内部调用自己本身,这个函数就是递归函数。
计算n的阶乘:
def fact(n): if n==1: return 1 return n*fact(n-1) print(fact(5))
计算过程:
使用递归函数需要注意防止栈溢出,函数调用是通过栈这种数据结构实现的,每当进入一个函数调用,栈就会加入一层栈帧,每当函数返回,栈就会减少一层栈帧。由于栈的大小不是无限的,所以,函数调用的次数过多,会导致栈溢出。例如运行fact(1000)控制台会报错:
RecursionError: maximum recursion depth exceeded in comparison