专栏首页python3Python之递归

Python之递归

在函数内部,可以调用其他函数,如果一个函数在内部调用自身,这个函数就是递归函数。

    def test(n):
        print(n)
        if int(n/2) == 0:
            return n
        return test(int(n/2)

  test(5)

递归特性:

1.必须有一个明确的结束条件

if int(n/2) == 0:
        return n
#当int(n/2)的值等于0时,return 0 ==> 返回值为0,结束递归

2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时通过栈(stack)这种结构数据实现的,每当进入一个函数调用栈就会多一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈帧不是无限的,所以递归调用的次数过多,会导致栈溢出)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • XFire体系及重要API(3)

    XFire允许通过运行Ant任务,根据WSDL文件生成访问Web Service的客户端代码存根,同时XFire还提供了一个Eclipse插件完成相同的任务。本...

    py3study
  • 从rand(5)生成rand(7),从r

     我们先来看这样一个问题, 已知rand5能等概率产生1, 2, 3, 4, 5, 现要用rand5来实现rand7(rand7的意思是要等概率产生1, 2, ...

    py3study
  • python3--递归

    py3study
  • 蓝桥杯C语言知识点补充——快速排序详解

    神无月
  • 软体机器人或可由“喷墨打印”制造

    美国普渡大学的科研人员日前利用喷墨打印技术制造出液体合金设备,这一新工艺可用于大规模生产柔性可伸展导体,直至软体机器人。 ? 据物理学家组织网站4月8日(北京时...

    机器人网
  • C#线程的使用(二):检测线程的结束

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    bering
  • R语言自定义函数

    R语言在使用过程中有些时候代码过长或者很多重复性的功能需要对代码的结构进行管理以及梳理。R语言具有自定义函数的功能,如果有些代码实现的功能具有重复性,那么就可以...

    一粒沙
  • Android开发笔记(二)颜色的使用

    Android中颜色值的定义是由透明度alpha和RGB(红绿蓝)三原色来定义的,有八位十六进制数与六位十六进制数两种编码,例如八位FFEEDDCC,前两位...

    用户4464237
  • wepy框架入门

    使用微信开发者工具新建项目,本地开发选择dist目录。 微信开发者工具 --> 项目 --> 关闭ES6转ES5。 本地项目根目录运行wepy build ...

    达达前端
  • ElasticSearch2.1的java api批量建索引方法

    我是攻城师

扫码关注云+社区

领取腾讯云代金券