目录

1.递归函数的概念

2.递归函数的特点

3.递归函数解决实际问题

3.1.计算n!=1*2*3...*n

3.2.斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, 21, ···

3.3.小明为了学好英语,需要每天记单词,第一天记1个,第二天记2个依次类推,请用代码完成,算出小明第10天开始的时候会了多少个单词?

4.拓展


1.递归函数的概念

递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件

2.递归函数的特点

递归函数的有点:代码简单,逻辑清晰

理论上所有的递归函数都可以写成循环迭代的方式

1. 每一级函数调用时都有自己的变量,但是函数代码并不会得到复制,如计算5的阶乘时每递推一次变量都不同;
2. 每次调用都会有一次返回,如计算5的阶乘时每递推一次都返回进行下一次;
3. 递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;
4. 递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;
5. 递归函数中必须有终止语句。

3.递归函数解决实际问题

3.1.计算n!=1*2*3...*n

def fact(n):if n < 2:return 1return n*fact(n-1)
print(fact(4))>>24

3.2.斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, 21, ···

这个数列从第三项开始,每一项都等于前两项之和

def fibo(n):if n < 2:return nreturn fibo(n-1)+fibo(n-2)
print(fibo(5))>>>5

我们把工作原理流程图简化成这种二叉树的模式,我们将通过树状结构来了解fibo(5)函数的执行流程。

二叉树是先执行左边树枝 ,右分支是从最底层往上执行的

3.3.小明为了学好英语,需要每天记单词,第一天记1个,第二天记2个依次类推,请用代码完成,算出小明第10天开始的时候会了多少个单词?

def learn(n):if n < 2:return 1return n+learn(n-1)
print(learn(10))>>>55

4.拓展

1.在计算机学里,尾调用是指一个函数里的最后一个动作是返回一个函数的调用结果的情形,即最后一步新调用的返回值直接被当前函数返回的情形。此时,该尾部调用位置被称为尾位置。若这个函数在尾位置调用本身(或是一个尾调用本身的其他函数等等),则称这种情况为尾递归,是递归的一种特殊情形。尾调用不一定是递归调用,但是尾递归特别有用,也比较容易实现。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码。 可参考链接如下:

python使用递归、尾递归、循环三种方式实现斐波那契数列https://blog.csdn.net/together_cz/article/details/76216239

2.使用python语言表达分形与递归,可参考链接如下:

http://wiki.swarma.net/index.php/%E4%BD%BF%E7%94%A8python%E8%AF%AD%E8%A8%80%E8%A1%A8%E8%BE%BE%E5%88%86%E5%BD%A2%E4%B8%8E%E9%80%92%E5%BD%92

3.参考其他文章:什么是递归函数https://blog.csdn.net/wf19930209/article/details/79341939#%E7%89%B9%E7%82%B9

【Python】什么是递归函数?相关推荐

  1. Python进阶之递归函数的用法及其示例

    作者 | 程序员adny 责编 | 徐威龙 封图| CSDN│下载于视觉中国 出品 |  AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...

  2. Python 进阶之递归函数一点都不难!

    封图| CSDN│下载于视觉中国 作者 | 程序员adny 责编 | 徐威龙 出品 |  AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...

  3. Python 2.4 递归函数

    递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用本身,这个函数就是递归函数. 举个例子:计算阶乘n!=1*2*3*4*5*...*n,用函数fact(n)表示,可以看出 fact(n)= ...

  4. python递归函数详解-讲解Python中的递归函数

    在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: ? ...

  5. python中的递归函数是什么_Python中的递归函数

    递归函数recursion 函数直接或者间接调用自身,这就是递归函数.能用递归函数解决的问题,一般使用循环也可以解决.递归函数一定要有边界 递归函数的案例 一.斐波那契数列 求斐波那契数列前n项 de ...

  6. python中的递归函数是什么_Python中的递归函数是什么

    Python 递归函数 递归的特性: 1.调用自身函数 2.有一个结束条件 3.递归效率不高,可能会导致栈溢出(函数调用是通过栈这种数据结构实现的,每进入一个函数调用,栈就会增加一层栈帧,函数每返回, ...

  7. 【python基础】递归函数

    在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数 特性 必须有一个明确的结束条件 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 相邻两次重复之间有紧密的联 ...

  8. Python写一个递归函数

    好的,下面是一个用 Python 实现递归函数的示例: deffactorial(n):if n == 1:return 1else:return n * factorial(n-1)print(fa ...

  9. python 递归函数 - 刘江的python教程_[PYTHON系列教程]→递归函数

    在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:fa ...

  10. python学习day17 递归函数

    递归函数 http://www.cnblogs.com/Eva-J/articles/7205734.html def age(n):if n == 4:return 40elif n >0 a ...

最新文章

  1. R语言基于LASSO进行特征筛选(feature selection)
  2. lsof 查看一个进程打开哪些fd及对应的文件或套接字操作
  3. matlab利用t-SNE实现高维数据可视化(tsne函数用法实例)
  4. Android-- Intent.Action(2)
  5. UIView中常用的方法
  6. 构造函数,拷贝构造函数,赋值函数
  7. mitmproxy https抓包的原理是什么?
  8. Android基础 --- Widget
  9. 我晕,原来是这个问题!
  10. kubectl apply -f weave.yaml之后dns没有启动起来 weave-net CrashLoopBackOff
  11. java vcf文件增量写入,用snpEFF对vcf格式的突变数据进行注释
  12. Windows电脑电源选项开启“卓越性能”模式
  13. linux 安装oracle18c,CentOS75 安装Oracle18c
  14. 【python实战】怎么用python自动登录CSDN
  15. Vue报错: [Vue warn]: Duplicate keys detected: ‘5‘. This may cause an update
  16. 遗传算法解决tsp问题(基于python)
  17. 机房动环监控系统方案组成及应用
  18. js将字符串转换为数字
  19. centos 查看内存大小 cpu 硬盘等信息
  20. simulink模型中的仿真时间和仿真步长的区别

热门文章

  1. 什么是算命里说的三奇命,天上三奇,地下三奇,人中三奇
  2. Ubuntu下安装Datax-web数据交换平台
  3. VNC树莓派无法连接
  4. 第十四章第四节:Java集合框架之二叉树
  5. java开发工具对比_Eclipse和STS哪个好_Java开发工具优缺点对比一览
  6. Chimaera:用区块链游戏思维将《玩家一号》的“绿洲”变为现实;网易有道将推语音助手及智能音箱
  7. GC是什么?为什么会有GC?
  8. 前端移动端刻度尺实现
  9. Unity XCode交互(unity调用讯飞的AIUI技能ios的sdk)
  10. 172 Factorial Trailing Zeroes(阶乘后的零)————附带详细思路和代码