函数递归简单的来说就是函数自己调用自己,实现和循环类似的效果,通过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. python框架之Flask基础篇(一)
  2. 测试优惠券要怎么写测试用例?
  3. 帝国cms二次开发之文件夹的功能说明
  4. Excel表格数据导入到SQLServer数据库
  5. SAP UI5 应用开发教程之五十六 - SAP UI5 树控件(tree)的开发试读版
  6. 硬件编程:硬件开发中常用的几种通信接口总结
  7. 是先打工还是直接创业?答案让我惊呆了!
  8. leetcode94 二叉树的中序遍历
  9. 华为P50E全方位曝光:延续P50设计 换装骁龙778G 4G芯片
  10. intellij idea 导出可执行jar
  11. 二元二次方程例题_2元1次方程100道题 七年级数学下册二元二次方程组100道计算题及答案!......
  12. 使用visdom三维可视化图像。
  13. 【FL攻防综述】Privacy and Robustness in Federated Learning: Attacks and Defenses
  14. 软件设计 抽象_调试抽象给软件工程师带来正念的好处
  15. 苹果手机怎么备份通讯录?
  16. Maya v1.0.7.0 类似Rolan简洁小巧简单易用的快速启动工具
  17. HTML旅游网站设计与实现——东江湖旅游网站6个网页HTML+CSS+JavaScript
  18. symfony框架Twig模板语言的使用
  19. ▷Scratch资讯丨华为达芬奇计划
  20. 计算机控制技术直流电机调速控制实验报告,pid直流电机转速控制实验报告(31页)-原创力文档...

热门文章

  1. 口香糖能做什么?橡皮泥?
  2. CSK与KCF算法推导(六)
  3. 华为系(手机/电脑)护眼模式设置
  4. linux中 fopen函数,详解C语言中的fopen()函数和fdopen()函数
  5. DolphinScheduler任务调度
  6. 银行信用卡中心通常关注哪些用户运营指标?
  7. php幻灯片的插件,萧涵主题添加幻灯片插件WP flash img show
  8. 枪神纪显示正在启动服务器,枪神纪颠覆封测正式开启 常见问题整理大全
  9. 如何系统学习知识图谱-张子良-专题视频课程
  10. php 模板替换,thinkphp模板赋值与替换实例简述