实际应用中遇到了一个python递归调用的问题,报错如下:

RuntimeError: maximum recursion depth exceeded while calling a Python object

网上找了一下,原来Python确实有递归次数限制,默认最大次数为1000

在正常的python里:

In [1]: sys.setrecursionlimit?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function setrecursionlimit>
Namespace: Interactive
Docstring: setrecursionlimit(n) Set the maximum depth of the Python interpreter stack to
n.  This limit prevents infinite recursion from causing an
overflow of the C stack and crashing Python.  The highest
possible limit is platform-dependent.

那么如何进行判断处理呢?下面给出两段代码,供参考。

代码如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def recursion(n): if(n <= 0): return print n recursion(n - 1) if __name__ == "__main__":recursion(1000)

当在我自己的机器运行以上代码时,发现最多能打印到998,然后就会抛出 “RuntimeError: maximum recursion depth exceeded” 的错误了。 嘿,还真有限制。但转念一想,python不会这么弱吧。经过一番查找,发现这是python专门设置的一种机制用来防止无限递归造成Python溢出崩溃, 最大递归次数是可以重新调整的。 (http://docs.python.org/2/library/sys.html#sys.setrecursionlimit),修改代码如下:

import sys
sys.setrecursionlimit(1500) # set the maximum depth as 1500def recursion(n): if(n <= 0): return print n recursion(n - 1) if __name__ == "__main__":recursion(1200)

再次运行,顺利通过!!!

Python中递归的最大次数相关推荐

  1. python递归汉诺塔详解_汉诺塔在python中递归,理解磁盘目的地的变化

    我正在努力提高我对python中hanoi之塔递归解决方案代码的理解. 此代码:def moveTower(height,fromPole, toPole, withPole): if height ...

  2. python递归实现文件复制_在python中递归复制文件或目录

    python似乎有复制文件的功能(如shutil.copy)和复制目录的功能(如shutil.copytree),但我没有找到同时处理这两者的功能.当然,检查您是想复制一个文件还是一个目录是很简单的, ...

  3. python3 中递归的最大次数

    实际应用中遇到了一个python递归调用的问题,报错如下: RuntimeError: maximum recursion depth exceeded while calling a Python ...

  4. python中import星_【已解决】Python中递归import导入:ImportError: cannot import name

    折腾: 期间,从错误信息中可以看到:Traceback (most recent call last): File "/usr/lib64/python3.4/runpy.py", ...

  5. 用python计算1~100的阶乘之和_在Python中递归函数调用举例and匿名函数lambda求1~100的和及计算阶乘举例...

    1.递归列出目录里的文件的脚本举例 列出目录中的文件可以通过下面方法:os.listdir() In [1]: import os In [4]: os.listdir('/root') Out[4] ...

  6. python index函数时间复杂度_如何确定Python中递归循环的时间复杂度?

    分析此函数的主要挑战是没有那么多的递归调用,但每次调用都会返回一个逐渐增大和增大的元素列表.特别要注意的是,有n! n个元素列表的排列.因此,我们知道如果你在一个大小为n的列表上进行递归调用,将会有n ...

  7. Python中递归字符串反转

    我们可以用Python轻松的反转字符串,代码如下: def reverse(s):if s == '':return selse:return reverse(s[1:]) + s[0]print(r ...

  8. python中处理日期和时间的标准模块是-2019python常见的170道面试题解析

    语言特性 1.谈谈对 Python 和其他语言的区别 2.简述解释型和编译型编程语言 3.Python 的解释器种类以及相关特点? 4.说说你知道的Python3 和 Python2 之间的区别? 5 ...

  9. python 中常见的面试练习题

    python 中常见的面试题 语言特性 编码规范 数据类型-字符串 数据类型 - 列表 数据类型 - 字典 数据类型 - 综合 操作类题目 高级特性 正则表达式 其他内容 算法和数据结构 爬虫类 网络 ...

最新文章

  1. SAP MM MIGO + 301 K 可以对供应商寄售库存跨工厂转库
  2. 表表达式,Substring, CharIndex, 多行数据变同一行的用法
  3. VC知识点:关于没有提示的内存泄露
  4. C#开发C/S结构如何通信的问题?
  5. 机器学习笔记:ResNet 及残差连接
  6. OpenCV蒙版图像make mask image的实例(附完整代码)
  7. python 求一个矩阵的距离矩阵的方法:
  8. 宏内核linux,Linux 为什么还要坚持使用宏内核?
  9. 2012.2.18-silverlight设计器崩溃
  10. 动态规划求解所有字符的组合数
  11. c语言 数组指针函数,C语言:数组 指针 函数
  12. 20169217 《Linux内核原理与分析》 第十周作业
  13. 微信小程序CSS之Flex布局
  14. 常微分方程组及高阶常微分方程的数值解法
  15. java 毕向东 笔记_毕向东Java基础部分笔记
  16. u盘在计算机打不开,别的电脑能打开u盘自己的怎么打不开解决方法
  17. 攻防世界MISC进阶区刷题记录
  18. No valid entries or contents found, this is not a valid OOXML (Office Open XML) file
  19. 如何证明二元函数的连续性 可…
  20. 苹果三代耳机_浅谈华强北最强Airpods Pro(苹果三代蓝牙耳机)到底怎么样?

热门文章

  1. centos7挂载windows共享文件
  2. Linux 查看进程和删除进程
  3. 从Cell的视图推出一个新的界面
  4. 基础知识(9)- Swing用户界面组件
  5. HA 高可用之V1版
  6. Android C2DM学习 - 云端推送
  7. unix executable file
  8. Intel3945ABG无线上网问题总结
  9. Css的filter常用濾波器屬性及語句大全
  10. 解密联想20年的45条法则