最近在做Python函数练习的时候出现了一个问题,递归超过997时Python解释器会报错,具体代码如下:
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
print(fact(998))
报错截图:
百度后才知道,Python默认的递归深度是有限制的,大概900多。解决方法是导入系统模块并修改递归深度,具体代码如下:
import sys
sys.setrecursionlimit(10000)
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
print(fact(998))
修改后问题解决,setrecursionlimit的参数可以根据实际情况自行设置一个合理的值。
sys.setrecursionlimit(100000)