首先来看看python默认的最大递归层数:

运行环境:Windows 10,x64python环境:python3.5

得到的最大数为998,以后就是报错了:RecursionError: maximum recursion depth exceeded while calling a Python object

那么python允许的最大递归层数是多少呢?我们实验下:

importsys

sys.setrecursionlimit(100000)deffoo(n):print(n)

n+= 1foo(n)if __name__ == '__main__':

foo(1)

得到的最大数字在3925-3929之间浮动,这个是和计算机有关系的,不然也不会是一个浮动的数字了(数学逻辑讲求严谨)。

我们已经将数字调到足够大了,已经大于系统堆栈,python已经无法支撑到太大的递归了。

对于没有尾递归的编程语言来说,程序运行起来的时候计算机会给当前进程分配栈,每递归一次,计算机就会给当前程序调度一部分来使用,当使用过多了,那么不好意思,我就这么点了。然后,就没有然后了,崩了。python不是尾递归优化的语言,我们不应该使用递归来替代掉循环,循环存在必然有它巨大的意义。递归用于复杂度为O(log(n))的计算是很有意义的,用于O(n)就不怎么好了。

那么有什么好的解决办法呢?当然是有的,比如python的generator,这个是python的一大神器,请参看:http://www.jianshu.com/p/d36746ad845d

总结:

递归是一个很有用的处理方式,简单到遍历文件夹、处理XML;复杂到人工智能等。合理使用递归能让我们的程序具有简洁和强的可读性。

python 递归的最大层数_练习题-Python的最大递归层数相关推荐

  1. python的递归为什么难理解_为什么Python有最大的递归深度?

    实际上这里有几个问题.在 首先,正如NPE's answer很好地解释的那样,Python并没有消除尾部调用,所以在Python中允许无限递归的函数(比如Scheme)是有限的.在 其次,正如NPE所 ...

  2. python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...

  3. python编程第5版_正版 Python学习手册(原书第5版) python编程从入门到精通 python入门 计算机网络...

    上册 前言1 部分使用入门 章问答环节21 人们为何使用Python21 软件质量22 开发者效率23 Python是一门"脚本语言"吗23 好吧,Python的缺点是什么25 如 ...

  4. python文本结构化处理_在Python中标记非结构化文本数据

    python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...

  5. python交互式和文件式_使用Python创建和自动化交互式仪表盘

    python交互式和文件式 In this tutorial, I will be creating an automated, interactive dashboard of Texas COVI ...

  6. python十大必备知识_学Python必备的基础知识

    学Python必备的基础知识 1.基本概念 表达式:就是一个类似于数学公式的东西,一般仅仅用了计算一些结果 ,不会对程序产生实质性的影响,如9+3; 语句:在程序中语句一般需要完成某种功能,比如打印信 ...

  7. 学python的有哪些好书_学习python有哪些好书和学习方法?

    不请自来~ 上干货 <Python数据分析>作者: [印尼]Ivan Idris Python是一种多范型编程语言,既适用于面向对象的应用开发,又适合函数式设计模式.Python已经成为数 ...

  8. python怎么做软件程序_看 Python 超级程序员使用什么开发工具

    Python超级程序员使用的开发工具 我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题: 当前你的主要开发任务是什么? 你在项目中使用的电脑是怎样的? 你使用什么IDE开发 ...

  9. python在人工智能应用锁_干货 | Python人工智能在贪吃蛇游戏中的应用探索(上)...

    文案&代码 白宇啸 排版&审校 邓发珩 前言 一个月前,人工智能对我来说都是很陌生的,更不用说神经网络.强化学习.DQN等名词了.疫情期间,经过在家努力学习,我对这些概念越来越清晰了, ...

最新文章

  1. RabbitMQ安装与初始配置
  2. f-BRS: Rethinking Backpropagating Refinement for Interactive Segmentation解析
  3. 163相册密码破解 - 简单版
  4. 最聪明的如何成为优秀的——微软高管指点成材路
  5. B - Sort the Array
  6. postfix+dovecot+maildrop+mailscanner+clamav+spamassassin搭建rhel6平台邮件服务器
  7. javascript优缺点
  8. 计算机二级可以用笔记本电脑学吗,计算机二级可以自学好过吗
  9. 最优化:拟牛顿法、最速下降法、共轭梯度法、信赖域法、协同优
  10. php 抽奖活动_PHP实现活动人选抽奖功能的方法
  11. Agora Flat:在线教室的开源初体验
  12. 阿里云服务器ECS搭建EMQ快速实现MQTT通信
  13. 携程福利变噩梦 上海妇联:严肃处理旗下杂志
  14. iOS—知乎日报总结
  15. Gunicorn 部署flask-socketio项目,项目访问慢的问题
  16. php swa,科学网—DBSCAN-SWA:一行命令找到溶源噬菌体 - 刘永鑫的博文
  17. 人工智能时代 ROS机器人(PPT介绍)
  18. 设计一种可全向移动的球形机器人
  19. Automation 360 新版AA
  20. 【Tableau Desktop 企业日常技巧11】谈一谈度量和维度 离散和连续?

热门文章

  1. pandas 不要编号 加一行_文科生带你学Python|Pandas读取数据
  2. php 上一页 下一页代码,php无限上一页,下一页,求完善代码??
  3. ICE提纲之demo/IceStorm/clock(发布者/订阅者)
  4. Cacti监控mysql数据库server实现过程
  5. 【转】C#事件和委托的理解
  6. 使用idea的maven插件自动打jar包
  7. 学习日记2、easyui treeGrid属性及时间
  8. My SQL-4 函数
  9. 研华外触发实验PCI1714板卡安装事项
  10. 三星如何抄袭苹果 产品对比一目了然