python函数的递归小兔子_python中函数递归
函数递归简单的来说就是函数自己调用自己,实现和循环类似的效果,通过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中函数递归相关推荐
- python中函数的定义包括_python中函数的定义及调用
python中函数的定义及使用方法 1.函数的概念:函数是将具有独立功能的代码块组织为一个整体,使其具有特殊功能的代码集; 2.函数的作用:使用函数可以加强代码的复用性,提高程序编写的效率; 3.函数 ...
- ln函数怎么看奇偶性_Python中函数的参数应该怎么理解?看完这篇文章情不自禁的想收藏...
前面给大家讲过,函数是一种编程思想,是提高代码重复利用的设计思路,是代码设计更深层次的产物.今天要给大家讲的就是函数的核心:函数的参数 基本概念 1.函数的参数:是指函数完成某项功能所需要的信息. 举 ...
- python绘制科赫曲线_python中使用递归实现koch曲线绘制
python 中使用递归绘制koch曲线 koch曲线是由瑞典数学家Helge von Koch,在1904年发表的"从初等几何构造的一条没有切线的连续曲线"的论文中提出的.它的描 ...
- python中函数的可变参数_Python中函数的参数定义和可变参数
转自:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944416.html 刚学用Python的时候,特别是看一些库的源码时,经常会看到fun ...
- python中result函数用法_python中函数的参数和返回值
函数 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 ...
- python内置函数调用_Python中函数的基本定义与调用及内置函数详解
前言 函数function是python编程核心内容之一,也是比较重要的一块.首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有 ...
- python中的方法和函数的区别_python中函数与方法的区别?
Python中函数不是方法,主要有以下区别: 首先,从分类的角度来分析二者的区别 (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数:自己调用自 ...
- python中模块和函数_Python中函数和模块的体验与使用
函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个 ...
- python中函数可以赋值给一个变量_python中函数赋值给变量时的问题注意详解
变量赋值是我们在日常开发中经常会遇到的一个问题,下面这篇文章主要给大家介绍了关于python中将函数赋值给变量时需要注意的一些问题,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的 ...
最新文章
- Windows dos 在某个目录下的所有文件中查找包含某个字符串的文件
- 全球及中国智能食品秤行业发展预测及市场规模预测报告2021年版
- 云函数连接mysql超时_云函数访问MYSQL数据库出错?
- Lombok中关于@Data的使用
- IPV6 Socket编程
- linux网络管理员认证考试,红帽认证系统管理员 (RHCSA) 考试
- Bootstrap 按钮的使用
- 贴吧一键签到机selenium自动化
- 一篇文章理清产品、运营、营销之间的概念和关系
- 《缠中说禅108课》37:背驰的再分辨
- linux下gpt分区,Linux下的GPT分区
- “钩子”、体验和思考人生,一家瑞典游戏工作室如何站稳脚跟,又不被自己的野心呛到
- H5活动之家平台,开启国庆双十一福利,活动全免费
- 无线网经常短连接服务器,我家的无线网不稳定,经常掉线,每次玩游戏到加载的时候,总会出现:”无法连接服务器,请检查您的网络“...
- WPF MVVM设计模式下 相同Xaml绑定不同ViewModel问题
- C++Primer笔记-A003-decltype使用
- 不靠谱的预测:今年双十一的销量是 6213 亿元
- 最优化--等式约束最优性条件
- 啊哈C——学习2.8一起来找茬
- 计算机照片打印设置方法,详解设置打印机纸张添加7寸照片尺寸在win7电脑中的操作的步骤...
热门文章
- 量化策略中常见的七大“坑”,你进了几个?
- 瑜伽教学法 | 在瑜伽老师这条路上我们都迷茫过,你是否也想过要放弃
- 华为鸿蒙系统平板,首款预装鸿蒙OS的华为平板即将登场
- 关于opencv使用CAP_PROP_FPS得到的摄像头帧率为0的解答和解决方案
- iPhone对比:iPhone 11 Pro iPhone 12 Pro iPhone 12 Pro Max
- 安装多个maya版本后,如何指定maya特定版本打开工程?
- html判断对象是否为空,javascript怎么判断对象是否为空对象?
- mysql 时间比较函数
- C语言的数组与子函数
- linux i3音量、亮度调节