Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python_函数递归

python_函数递归

作者头像
py3study
发布于 2020-01-17 03:31:25
发布于 2020-01-17 03:31:25
65000
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

函数递归

函数递归:函数的递归调用,即在函数调用的过程中,又直接或间接地调用了函数本身

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# import sys
# print(sys.getrecursionlimit())
# sys.setrecursionlimit(10000)
# print(sys.getrecursionlimit())

直接调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def foo():
    print('from foo')
    foo()

foo()

间接调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def bar():
    print('from bar')
    foo()


def foo():
    print('from foo')
    bar()


foo()
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
递归分为两个阶段
1、回溯:
    注意:一定要在满足某种条件结束回溯,否则的无限递归
2、递推

总结:
1、递归一定要有一个明确地结束条件
2、没进入下一次递归,问题的规模都应该减少
3、在python中没有尾递归优化
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# age(5)=age(4)+2
# age)4)=age(3)+2
# age(3)=age(2)+2
# age(2)=age(1)+2
# age(1)=18

# age(n)=age(n-1)+2 # n > 1
# age(n)=18            #n=1
#

# def age(n):
#     if n == 1:
#         return 18
#     return age(n-1)+2 #age(4)+2
#
# age(5)



items=[1,[2,[3,[4,[5,[6,[7,[8,[9,[10,]]]]]]]]]]
def tell(l):
    for item in l:
        if type(item) is not list:
            print(item)
        else:
            tell(item)

tell(items)
代码语言:javascript
代码运行次数:0
运行
复制
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数
本章目录:     一、三元表达式、列表推导式、生成器表达式     二、递归调用和二分法     三、匿名函数     四、内置函数 ================================
Jetpropelledsnake21
2018/05/02
1.2K0
Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数
python 递归函数——从入门到懵逼
目录 递归函数 1、定义:函数在运行的过程中,直接和间接调用了自身,就是递归函数 2、递推到回溯的流程图: 递归函数 1、定义:函数在运行的过程中,直接和间接调用了自身,就是递归函数 python默认的最大递归深度为1000次 实例如下: import sys # 获取最大递归深度 print(sys.getrecursionlimit()) # 结果 1000 # 修改最大递归深度为2000 sys.setrecursionlimit(2000) print(sys.getrecurs
HammerZe
2022/03/25
5910
python 递归函数——从入门到懵逼
递归
函数的嵌套调用是:函数嵌套函数。函数的递归调用:它是一种特殊的嵌套调用,但是它在调用一个函数的过程中,又直接或间接地调用了它自身。
py3study
2020/01/16
6160
python递归-三元表达式-列表生成式-字典生成式-匿名函数-部分内置函数-04
应用场景: # 将列表中的数字依次打印出来(循环的层数是你必须要考虑的点)   -->  l = [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, ]]]]]]]]]]]]]
suwanbin
2019/09/26
9790
python递归-三元表达式-列表生成式-字典生成式-匿名函数-部分内置函数-04
Python进阶之递归函数的用法及其示例
本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分享给大家,也给大家做个参考。一起来看看吧。
AI科技大本营
2020/03/13
5320
Python之递归函数
递归函数 初识递归函数 递归函数的定义:在一个函数里再调用这个函数本身 Python为了考虑保护内存占用情况,有一个递归深度的限制。 探究递归的默认最大深度: def foo(n): print(n) n += 1 foo(n) foo(1) 强制的将递归层数控制在了997,此后会报错,报错只是计算机为了保护内存。当然了,997是python为了我们程序的内存优化所设定的一个默认值,我们当然还可以通过一些手段去修改它: import sys print(sys.setrecursio
新人小试
2018/04/12
8730
Python之递归函数
递归函数[通俗易懂]
当然,你可以尝试会发生什么结果,理论上会永远运行下去,但实际操作时发现不一会儿程序就报错了,因为每次调用函数都会用掉一点内存,在足够多的函数调用发生后,空间几乎被占满,程序就会报错。
全栈程序员站长
2022/09/07
7630
递归函数[通俗易懂]
python 递归与高阶函数
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
py3study
2018/08/02
9920
RuntimeError: Maximum Recursion Depth Exceeded - 递归深度超限的完美解决方案
大家好,我是默语,擅长全栈开发、运维和人工智能技术。在日常编程中,我们可能会遇到 RuntimeError: maximum recursion depth exceeded 这样棘手的问题。这一错误通常与递归调用次数过多有关,在Python等语言中尤为常见。本文将深入剖析这一问题的根源,提供全面的解决方案,并探讨如何优化递归代码,避免陷入此类错误。我们还将分享一些最佳实践,帮助大家提升代码的效率和安全性。
默 语
2024/11/22
3090
Python中的递归与二分查找
998是python为了我们程序的内存优化所设定的一个默认值,我们当然还可以通过一些手段去修改它
星陨1357
2023/03/14
6390
Python中的递归与二分查找
Python基础10-函数的递归
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
2410
Python基础10-函数的递归
Python递归函数,二分查找算法
正如你们刚刚看到的,递归函数如果不受到外力的阻止会一直执行下去。但是我们之前已经说过关于函数调用的问题,每一次函数调用都会产生一个属于它自己的名称空间,如果一直调用下去,就会造成名称空间占用太多内存的问题,于是python为了杜绝此类现象,强制的将递归层数控制在了997(只要997!你买不了吃亏,买不了上当...).
changxin7
2019/08/14
7860
Python递归函数,二分查找算法
Python标准库sys:从基础到高级的全面解析与实战
sys.argv 是一个包含命令行参数的列表,其中第一个元素是脚本的名称。这在需要在命令行中接受用户输入时非常有用。
一键难忘
2024/03/19
7120
Python中的匿名函数及递归思想简析
上次咱们基本说了一下函数的定义及简单使用,Python中的基本函数及其常用用法简析,现在咱们整点进阶一些的。同样都是小白,咱也不知道实际需要不,但是对于函数的执行顺序以及装饰器的理解还是很有必要的。
Python进阶者
2020/05/26
9270
反转字符串/列表、改变递归次数限制、else用法...Python 冷知识(四)
本文转载自Python编程时光(ID:Python-Time) 交互式“_”操作符
AI科技大本营
2019/05/14
1.1K0
反转字符串/列表、改变递归次数限制、else用法...Python 冷知识(四)
使用Python语言理解递归
一个函数在执行过程中一次或多次调用其本身便是递归,就像是俄罗斯套娃一样,一个娃娃里包含另一个娃娃。
py3study
2020/01/17
7910
盘点Python编程语言sys库中的7个常用函数
上篇文章中,我们盘点了sys库的12个变量,详情请戳:盘点Python编程语言sys库中的12个变量,这篇文章我们继续盘点sys库中常用的7个函数。
Go进阶者
2021/01/22
5680
谈谈 Python 那些不为人知的冷知识(四)
这是 Python 中好玩但比较冷门的知识点第四篇,一篇只分享五个,不想错过的,千万记得关注一下。
张俊红
2019/10/10
4920
谈谈 Python 那些不为人知的冷知识(四)
python中函数递归VS循环
可以理解为在定义的函数内部调用函数自己,形成一个回路。既然形成了一个回路,那么必须要有一个退出的方式。而这种退出的方式一般都是采用条件判断来实现的。
刘金玉编程
2019/08/01
1.7K0
函数之递归[通俗易懂]
在讲今天的内容之前,我们先来讲一个故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢……这个故事你们不喊停我能讲一天!我们说,生活中的例子也能被写成程序,刚刚这个故事,让你们写,你们怎么写呀?
全栈程序员站长
2022/07/21
5390
相关推荐
Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档