龙空技术网

python:递归函数

广东IT优就业 250

前言:

此时朋友们对“python的递归”可能比较关切,各位老铁们都需要学习一些“python的递归”的相关内容。那么小编同时在网络上收集了一些对于“python的递归””的相关知识,希望兄弟们能喜欢,看官们快快来学习一下吧!

广东IT优就业

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培训老师今天分享的内容对大家有所帮助。

出处:

更多IT精彩推荐:

带你打开世界第一编程语言的大门:

标签: #python的递归