尝试更换:
def fact(n): return 1 if(n == 1) else n * fact(n - 1)
至:
def fact(n): return 1 if(n <= 1) else n * fact(n - 1)
因为如果您传递2个相同的数字,则将尝试计算fact(0)(将调用fact(-1)和fact(-2),直到最大递归深度错误为止)。
fact(0)
fact(-1)
fact(-2)