前言:
此时朋友们对“python的递归”可能比较关切,各位老铁们都需要学习一些“python的递归”的相关内容。那么小编同时在网络上收集了一些对于“python的递归””的相关知识,希望兄弟们能喜欢,看官们快快来学习一下吧!1,初识递归函数
1)什么是递归函数?
在函数中自己调用自己叫做递归函数
递归函数超过一定程度会报错。---RecursionError: maximum recursion dep th exceeded while calling a Python object。递归的错误,超过了递归函数的最大深度。
2)最大递归深度:默认997
3)递归函数的优缺点
#如果递归次数太多,就不适合使用递归来解决问题。
#递归的缺点:占内存
# 递归的优点:会让代码变简单
4)什么时候用递归?
问题分析一级一级向下,答案一步一步向上返。
2、初识算法------二分法
#找到目标值aim,在l中的位置l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]def find(l,aim): mid_index = len(l)//2 #找中间的索引 if l[mid_index] < aim: #如果中间索引所对应的值<目标值 new_l = l[mid_index+1 :] find(new_l,aim) elif l[mid_index] > aim: #如果中间索引所对应的值>目标值 new_l = l[:mid_index] find(new_l, aim) else: print('找到了',mid_index,l[mid_index])find(l,66)#问题:如果目标值不在l里,则会报错,且没有返回值。因此需要进行改进
改进:
def find(l,aim,start = 0,end = None): end = len(l) if end is None else end mid_index = (end - start)//2 + start if start <= end: if l[mid_index] < aim: return find(l,aim,start =mid_index+1,end=end) elif l[mid_index] > aim: return find(l, aim, start=start, end=mid_index-1) else: return mid_index else: return '找不到这个值'ret= find(l,44)print(ret)
希望广州IT培训老师今天分享的内容对大家有所帮助。
出处:
更多IT精彩推荐:
带你打开世界第一编程语言的大门:
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python的递归