Python基础之递归函数
2019-05-27 08:05
204 查看
什么是递归函数?
递归(recursion):
1.是一个函数
2.函数执行的过程中,自己调用自己
3.递归一定有结束调用自己的条件
4.递归效率不高
5.什么问题必须用递归?汉诺塔
6.不会死循环,有最大递归次数限制,会报错 RecursionError: maximum recursion depth exceeded while calling a Python object
So,知道了什么是递归函数,直接上代码看例子,以斐波那契数列(Fibonacci sequence)为例:
1 1 2 3 5 8 13 21 34
前两项为1,后面每一项的值为其前两项值的和
使用非递归算法求fib数列中第n项的值:
def fib1(n): n1 = 1 n2 = 1 for i in range(n-2): n1,n2 = n2,n1+n2 return n2 print(fib1(7))
使用递归算法求fib数列中第n项的值:
def fib2(n): if n == 1 or n == 2: return 1 else: return fib2(n-2)+fib2(n-1) print(fib2(7))
刚接触递归可能很难理解,可能看不懂代码的实现逻辑,建议使用3次调用,来分析递归调用的过程。
以fib2(4)为例
fib2(4)--> fib2(3)+fib2(2) -->fib2(3)=fib2(2)+fib2(1),fib2(2)=1--> fib2(2)+fib2(1)+1-->fib2(2)=1,fib2(1)=1--> fib2(4) = (fib2(2)+fib2(1))+fib2(2)=1+1+1 = 3
注:
递归的效率不高
相关文章推荐
- Python基础之递归函数与二分法
- python_fullstack基础(十)-递归函数
- Python基础(函数,函数的定义,函数的调用,函数的参数,递归函数)
- Python开发基础-Day11内置函数补充、匿名函数、递归函数
- python基础----递归函数(二分法、最大深度递归)
- Python基础--递归函数
- Python基础-函数-递归函数
- 笔记:python基础之算法(递归函数的应用)
- python基础知识- 递归函数
- python基础之内置函数补充、匿名函数、递归函数
- 笔记:python基础之递归函数
- Python基础笔记_Day08_Python偏函数、回调函数、递归函数
- 递归函数 分类: python基础学习 python 小练习 2013-12-12 17:51 278人阅读 评论(0) 收藏
- Python基础入门之函数三之递归函数
- python基础——递归函数
- python函数基础:嵌套函数、作用域、匿名函数、高阶函数、递归函数
- python基础----函数的定义和调用、return语句、变量作用域、传参、函数嵌套、函数对象、闭包、递归函数
- Python基础-列表生成式
- python基础04
- Python基础教程学习笔记 第一章 基础知识