内容简介: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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Python 拓展之特殊函数(lambda 函数,map 函数,filter 函数,reduce 函数)
- Python 函数调用&定义函数&函数参数
- python基础教程:函数,函数,函数,重要的事说三遍
- C++函数中那些不可以被声明为虚函数的函数
- 017.Python函数匿名函数
- 纯函数:函数式编程入门
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
React Native开发指南
[美]艾森曼 / 黄为伟 / 人民邮电出版社 / 2016-6-1 / CNY 59.00
本书通过丰富的示例和详细的讲解,介绍了React Native这款JavaScript框架。在React Native中利用现有的JavaScript和React知识,就可以开发和部署功能完备的、真正原生的移动应用,并同时支持iOS与Android平台。除了框架本身的概念讲解之外,本书还讨论了如何使用第三方库,以及如何编写自己的Java或Objective-C的React Native扩展。一起来看看 《React Native开发指南》 这本书的介绍吧!
随机密码生成器
多种字符组合密码
HSV CMYK 转换工具
HSV CMYK互换工具