# 用递归的方式实现阶乘 def funcl1(n): if n == 1: return 1 return funcl1(n - 1) * n print(funcl1(4))
print(funcl1(999)) 运行之后报错:
RecursionError: maximum recursion depth exceeded in comparison
原因分析:
递归要防止栈溢出。进入函数的时候,栈调用增加一层,出函数的时候减一层。
python中栈最高998层,所以funcl1(998)正常,funcl1(999)报错。