17.匿名函数,递归(二分查找算法)
匿名函数
匿名函数:为了解决那些功能简单的需求而设计的一句话函数
匿名函数形式:函数名 = lambda 关键字 :函数体(也就是匿名函数的返回值)
lambda n:n*n #一个参数 lambda n,m:n*m #多个参数
递归函数
什么是递归:在一个函数中调用自身函数
python从内存角度发出限制,默认最大的递归深度是997
可以使用代码自己设置递归的最大深度
import sys sys.setrecursionlimit(100) 设置递归的最大深度为100
递归的应用场景:如果需要多次递归才能实现的功能,就不适合用递归来解决
递归的缺点:占内存
递归的优点:会让代码编写变简单
例题:用递归函数来实现二分查找算法
def find_num(l,num,start=0,end=None): end=len(l) if end is None else end mid = (end-start)//2+start if start<=end: if(l[mid]>num): return find_num(l,num,start=start,end=mid-1) elif(l[mid]<num): return find_num(l,num,start=mid+1,end=end) else: return mid else: return '数据找不到'
l=[1,3,5,6,7,8,9]
print(find_num(l,8))
执行结果:5

浙公网安备 33010602011771号