函数递归简单的来说就是函数自己调用自己,实现和循环类似的效果,通过return关键字来实现自己调用自己。

一个简单的循环例子,1~100的累加,这可能是很多人学习循环编写的第一个程序,用循环和递归分别实现。

for循环:

s = 0

for i in range(1, 101):

s = i+s

print(s)

while循环

i = 0

s = 0

while i < 100:

i += 1

s += i

print(s)

函数递归

def add(i):

if i >= 100:

return i

return add(i+1)+i

print(add(1))

函数的两个特性:

1、不调用不执行

2、函数的结果会替代函数本身

基于这两个特性可以完成函数的递归

函数递归的简单解析(基于1到100的累加):

函数第1次运行结果:

add(1+1)+1

函数第2次运行结果:

add(1+1)的结果为add(2+1)+2,再加上第1次运行的结果:

add(2+1)+2+1

函数第3次运行的结果:

add(2+1)的结果为add(3+1) +3,加上第2次运行的结果:

add(3+1)+3+2+1

以此类推,最后当i等于100时,会返回100+99+98+97+…+2+1的结果。

下面来看一个比较复杂的例子,一道中国古典数学问题:

有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到3个月后每个月又生一对兔子。假设所有的兔子都不死,问每个月的兔子总数为多少?

这道题通过分析可以看出是兔子数量是一个斐波那契数列,如下所示:

1、1、2、3、5、8、13、21、34、……

从第三个月开始,每个月的兔子数量等于前两个月的兔子数量之和。

通过while循环实现如下:

l = [0, 0]

s = 1

while True:

s = s+l[-2]

l.append(s)

l.pop(0)

print(s)

if s > 100:

break

通过函数递归实现如下:

def rab(a, b, k):

print(a)

if k == 7:

return a

return rab(a=a+b, b=a, k=k+1)

rab(a=1, b=0, k=1)

对比来看,函数递归的代码相对来说会简洁很多。

原文链接:https://blog.csdn.net/weixin_42507239/article/details/107698270

python函数的递归小兔子_python中函数递归相关推荐

  1. python中函数的定义包括_python中函数的定义及调用

    python中函数的定义及使用方法 1.函数的概念:函数是将具有独立功能的代码块组织为一个整体,使其具有特殊功能的代码集; 2.函数的作用:使用函数可以加强代码的复用性,提高程序编写的效率; 3.函数 ...

  2. ln函数怎么看奇偶性_Python中函数的参数应该怎么理解?看完这篇文章情不自禁的想收藏...

    前面给大家讲过,函数是一种编程思想,是提高代码重复利用的设计思路,是代码设计更深层次的产物.今天要给大家讲的就是函数的核心:函数的参数 基本概念 1.函数的参数:是指函数完成某项功能所需要的信息. 举 ...

  3. python绘制科赫曲线_python中使用递归实现koch曲线绘制

    python 中使用递归绘制koch曲线 koch曲线是由瑞典数学家Helge von Koch,在1904年发表的"从初等几何构造的一条没有切线的连续曲线"的论文中提出的.它的描 ...

  4. python中函数的可变参数_Python中函数的参数定义和可变参数

    转自:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944416.html 刚学用Python的时候,特别是看一些库的源码时,经常会看到fun ...

  5. python中result函数用法_python中函数的参数和返回值

    函数 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 ...

  6. python内置函数调用_Python中函数的基本定义与调用及内置函数详解

    前言 函数function是python编程核心内容之一,也是比较重要的一块.首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有 ...

  7. python中的方法和函数的区别_python中函数与方法的区别?

    Python中函数不是方法,主要有以下区别: 首先,从分类的角度来分析二者的区别 (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数:自己调用自 ...

  8. python中模块和函数_Python中函数和模块的体验与使用

    函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个 ...

  9. python中函数可以赋值给一个变量_python中函数赋值给变量时的问题注意详解

    变量赋值是我们在日常开发中经常会遇到的一个问题,下面这篇文章主要给大家介绍了关于python中将函数赋值给变量时需要注意的一些问题,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的 ...

最新文章

  1. Windows dos 在某个目录下的所有文件中查找包含某个字符串的文件
  2. 全球及中国智能食品秤行业发展预测及市场规模预测报告2021年版
  3. 云函数连接mysql超时_云函数访问MYSQL数据库出错?
  4. Lombok中关于@Data的使用
  5. IPV6 Socket编程
  6. linux网络管理员认证考试,红帽认证系统管理员 (RHCSA) 考试
  7. Bootstrap 按钮的使用
  8. 贴吧一键签到机selenium自动化
  9. 一篇文章理清产品、运营、营销之间的概念和关系
  10. 《缠中说禅108课》37:背驰的再分辨
  11. linux下gpt分区,Linux下的GPT分区
  12. “钩子”、体验和思考人生,一家瑞典游戏工作室如何站稳脚跟,又不被自己的野心呛到
  13. H5活动之家平台,开启国庆双十一福利,活动全免费
  14. 无线网经常短连接服务器,我家的无线网不稳定,经常掉线,每次玩游戏到加载的时候,总会出现:”无法连接服务器,请检查您的网络“...
  15. WPF MVVM设计模式下 相同Xaml绑定不同ViewModel问题
  16. C++Primer笔记-A003-decltype使用
  17. 不靠谱的预测:今年双十一的销量是 6213 亿元
  18. 最优化--等式约束最优性条件
  19. 啊哈C——学习2.8一起来找茬
  20. 计算机照片打印设置方法,详解设置打印机纸张添加7寸照片尺寸在win7电脑中的操作的步骤...

热门文章

  1. 量化策略中常见的七大“坑”,你进了几个?
  2. 瑜伽教学法 | 在瑜伽老师这条路上我们都迷茫过,你是否也想过要放弃
  3. 华为鸿蒙系统平板,首款预装鸿蒙OS的华为平板即将登场
  4. 关于opencv使用CAP_PROP_FPS得到的摄像头帧率为0的解答和解决方案
  5. iPhone对比:iPhone 11 Pro iPhone 12 Pro iPhone 12 Pro Max
  6. 安装多个maya版本后,如何指定maya特定版本打开工程?
  7. html判断对象是否为空,javascript怎么判断对象是否为空对象?
  8. mysql 时间比较函数
  9. C语言的数组与子函数
  10. linux i3音量、亮度调节