递归函数
了解什么是递归 : 在函数中调用自身函数
最大递归深度默认是997/998 —— 是python从内存角度出发做的限制
能看懂递归
能知道递归的应用场景
初识递归 ——
算法 —— 二分查找算法
三级菜单 —— 递归实现
手动设置递归深度
import sys
sys.setrecursionlimit(100000)
n = 0
def story():
global n
n += 1
print(n)
story()
Recursion : 递归
RecursionError: maximum recursion depth exceeded while calling a Python object
递归错误,超出了递归的最大深度
story()
如果递归次数过多,就不适合使用递归来解决问题
递归的缺点: 占内存;
递归的优点: 让代码变简单
递归的用处:通过多个结果来得到最终答案,这其中的运算步骤都是一致的
递:从最终答案开始一直往下遍历到给出的条件
归:从已知条件向上进行多次重复运算,直到得到最终条件
范例:
# alex 多大? n = 1 age(1)=age(2)+2 = age(n+1)+2 # alex 比 egon大两岁 # egon 多大? n = 2 age(2)=age(3)+2 = age(n+1)+2 # egon比 wusir大两岁 # wusir 多大? n = 3 age(3)=age(4)+2 = age(n+1)+2 # wusir 比 king大两岁 # king 多大? # king 40 岁 n = 4 age(4)= 40 # n = 4 age(4) = 40 # n < 4 age(n) = age(n-1)+2 def age(n): if n == 4: return 40 elif 0 < n < 4: return age(n + 1) + 2 print(age(1))