函数中甚至也可以调用函数本身!这种操作被叫做递归
但是!需要注意的是,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