python递归次数默认不可以超过一千

251 阅读1分钟

函数中甚至也可以调用函数本身!这种操作被叫做递归

但是!需要注意的是,Python 中递归的次数是有默认限制的!默认不能超过一千次,不然就会报错

## 正常方法:循环,一个个叠加
def sum_cycle(n): 
    sum = 0 
    for i in range(1,n+1) : 
        sum = sum + i
    return sum

## 递归方式:前n个数的和,即前n-1个数的和+n
def sum_recu(n): 
    if n>0: 
       return n +sum_recu(n-1) 
    else: 
       return 0 
print(sum_cycle(100))
print(sum_recu(100)) # 高斯的同学们看了都会流泪

print(sum_recu(10000))

错误信息

--------------------------------------------------------------------------- RecursionError Traceback (most recent call last) <ipython-input-2-837743626ae6> in <module> ----> 1 print(sum_recu(10000)) <ipython-input-1-e692198036fb> in sum_recu(n) 10 def sum_recu(n): 11 if n>0: ---> 12 return n +sum_recu(n-1) 13 else: 14 return 0 ... last 1 frames repeated, from the frame below ... <ipython-input-1-e692198036fb> in sum_recu(n) 10 def sum_recu(n): 11 if n>0: ---> 12 return n +sum_recu(n-1) 13 else: 14 return 0 RecursionError: maximum recursion depth exceeded in comparison