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中将函数赋值给变量时需要注意的一些问题,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的 ...
最新文章
- python框架之Flask基础篇(一)
- 测试优惠券要怎么写测试用例?
- 帝国cms二次开发之文件夹的功能说明
- Excel表格数据导入到SQLServer数据库
- SAP UI5 应用开发教程之五十六 - SAP UI5 树控件(tree)的开发试读版
- 硬件编程:硬件开发中常用的几种通信接口总结
- 是先打工还是直接创业?答案让我惊呆了!
- leetcode94 二叉树的中序遍历
- 华为P50E全方位曝光:延续P50设计 换装骁龙778G 4G芯片
- intellij idea 导出可执行jar
- 二元二次方程例题_2元1次方程100道题 七年级数学下册二元二次方程组100道计算题及答案!......
- 使用visdom三维可视化图像。
- 【FL攻防综述】Privacy and Robustness in Federated Learning: Attacks and Defenses
- 软件设计 抽象_调试抽象给软件工程师带来正念的好处
- 苹果手机怎么备份通讯录?
- Maya v1.0.7.0 类似Rolan简洁小巧简单易用的快速启动工具
- HTML旅游网站设计与实现——东江湖旅游网站6个网页HTML+CSS+JavaScript
- symfony框架Twig模板语言的使用
- ▷Scratch资讯丨华为达芬奇计划
- 计算机控制技术直流电机调速控制实验报告,pid直流电机转速控制实验报告(31页)-原创力文档...
热门文章
- 口香糖能做什么?橡皮泥?
- CSK与KCF算法推导(六)
- 华为系(手机/电脑)护眼模式设置
- linux中 fopen函数,详解C语言中的fopen()函数和fdopen()函数
- DolphinScheduler任务调度
- 银行信用卡中心通常关注哪些用户运营指标?
- php幻灯片的插件,萧涵主题添加幻灯片插件WP flash img show
- 枪神纪显示正在启动服务器,枪神纪颠覆封测正式开启 常见问题整理大全
- 如何系统学习知识图谱-张子良-专题视频课程
- php 模板替换,thinkphp模板赋值与替换实例简述