一:初始递归
定义:在函数内调用自己。
最大递归层数做了一个限制:997
def story(): s="从前有坐山,山里有座庙,庙里有个老和尚讲故事讲的是什么呢" print(s) story() story()
限制修改
import sys print(sys.setrecursionlimit(100000))最大限制是python默认的,可以做修改。但我们不建议修改。
递归解决的问题:
通过参数来控制每一次调用缩小,计算规模。
适合场景:
数据规模在减小,但解决问题的思路没有改变。
结束递归的标志:return。
二:递归函数二分查找。
l=[2,3,5,10,15,16,18,22,26,] def find(l,aim): #----列表aim,要找的。---- mid=len(l)//2 #----计算中心---- if l[mid]>aim: #----判断中心位置的值和目标值的大小关系---- new_l=l[:mid] #----[16,18] return find(new_l,aim) elif l[mid]<aim: #----判断中间位置的值和目标值的大小关系---- new_l=l[mid+1:] return find(new_l,aim) else: return l[mid] print(find(l,16))
三:递归函数三级菜单。