day 17 初始递归

递归函数
了解什么是递归 : 在函数中调用自身函数
最大递归深度默认是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))
View Code
原文地址:https://www.cnblogs.com/77-is-here/p/10668917.html