Python函数递归调用实现原理实例解析
作者:吃了好多肉 发布时间:2023-01-16 12:00:52
标签:Python,函数,递归,调用
函数的递归调用:
是函数嵌套调用的一种特殊形式
具体是指:
在调用一个函数的过程中又直接或间接地调用到了本身
# 直接调用本身
def func():
print('我是func')
func()
func()
# 函数会不断的运行永远不会结束,但Python不允许这种情况,会默认限制只能调1000次.
# 间接调用本身
def f1():
print('我是f1')
f2()
def f2():
print('我是f1')
f1()
f1()
# 此时也相当于直接调用本身,f1-->f2-->f1-->f2-->f1。。。同样会不断循环
递归不应该无限的调用下去,必须在满足某种条件下结束递归
# 写一个函数获取0-9
def f1(n):
if n == 10:
return
print(n)
n += 1
f1(n)
f1(0)
# 0 1 2 3 4 5 6 7 8 9
递归的两个阶段:
1、回溯:一层一层调用下去
2、递推:满足某种条件,结束递归调用,然后一层一层返回。
递归的应用:
例如打印出一个嵌套多层列表内的所有元素
li = [1,2,[3,4,[5,6,[7,8],9]]]
def func(l):
for i in l:
if type(i) is list:
func(i)
else:
print(i)
func(li)
来源:https://www.cnblogs.com/ChiRou/p/13443227.html


猜你喜欢
- 准备工作(接上篇文章的示例也可以):1. 在index.js文件中引入任一js文件import sum from './sum
- 本文主要介绍了Python通过tkinter实现百度搜索的示例代码,分享给大家,具体如下:"""百度搜索可视化
- 我在按照 Byte of python一步步的学习Python, 在学到‘解决方案'的时候,原文的实例 “backup_ver1.p
- 背景编写代码过程中, 通常有主协程和多个子协程进行协作的过程,比如通过 WaitGroup 可以实现当所有子协程完成之后, 主协程再继续执行
- 昨天BOSS下了个命令让我用word宏的方式来快速生成sql,这样在我们建表的时候就不用在一条一条元数据的输入。从而提高效率节约成本:接到命
-   这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本。下面都用pag
- 前端开发部门在壮大,人员在增加,技术在进步。CSSer虽然不能代表前端开发团队,但CSSer是前端开发中非常重要的组成部分。一、文档写程序的
- 我们在制作网页时,有时会遇到这样的情况:根据用户的选择,显示不同的内容。比如,制作一个登录网页,上面有
- Flask-WTF扩展可以把处理web表单的过程变成一种愉悦的体验。一、跨站请求伪造保护默认情况下,Flask-WTF能够保护所有表单免受跨
- 前言我原本是学C\C++,这是本人第一篇关于python的文章。请多多关照!对于python为什么要打包成exe文件,是因为传输源文件以及源
- 数据库镜像方案有两种镜像运行模式。一种是“高安全性模式”,它支持同步操作。在高安全性模式下,当会话开
- 前言相信在日常生活中,平常大家聚在一起总会聊聊天,特别是女生(有冒犯到doge)非常喜欢聊星座,这个男生什么星座呀,那个男生什么星座呀…今天
- 级联样式表在13年前被引入,而且被广泛使用的CSS 2.1 标准在11年前被创建,显然我们现在已经与当年相差千里了。相当了不起的是期间网站开
- 运行环境: CentOS6.5_x64Python版本 : 2.6使用pyinstaller打包pyinstaller可以将python程序
- 一般开发,SQL Server的数据库所有者为dbo.但是为了安全,有时候可能把它换成其它的名称,所有者变换不是很方便.这里列出两种供参考
- 起步在 Django 的模型中新加了一个日期的字段:import datetimeclass Instance(models.Model):
- PHP PDO预定义常量以下常量由本扩展模块定义,因此只有在本扩展的模块被编译到PHP中,或者在运行时被动态加载后才有效。注意:PDO使用类
- Nginx配置Ngnix,一个高性能的web服务器,毫无疑问它是当下的宠儿。卓越的性能,灵活可扩展,在服务器领域里攻城拔寨,征战天下。静态文
- <div id=article><img height="800" alt=""
- 在跨业务、跨网站发送数据或者业务升级的时候,我们有的时候需要指定发送数据的编码方式,比如页面是utf-8编码的,而发送出去的数据却是GB23