Python中递归的最大次数
实际应用中遇到了一个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中递归的最大次数相关推荐
- python递归汉诺塔详解_汉诺塔在python中递归,理解磁盘目的地的变化
我正在努力提高我对python中hanoi之塔递归解决方案代码的理解. 此代码:def moveTower(height,fromPole, toPole, withPole): if height ...
- python递归实现文件复制_在python中递归复制文件或目录
python似乎有复制文件的功能(如shutil.copy)和复制目录的功能(如shutil.copytree),但我没有找到同时处理这两者的功能.当然,检查您是想复制一个文件还是一个目录是很简单的, ...
- python3 中递归的最大次数
实际应用中遇到了一个python递归调用的问题,报错如下: RuntimeError: maximum recursion depth exceeded while calling a Python ...
- python中import星_【已解决】Python中递归import导入:ImportError: cannot import name
折腾: 期间,从错误信息中可以看到:Traceback (most recent call last): File "/usr/lib64/python3.4/runpy.py", ...
- 用python计算1~100的阶乘之和_在Python中递归函数调用举例and匿名函数lambda求1~100的和及计算阶乘举例...
1.递归列出目录里的文件的脚本举例 列出目录中的文件可以通过下面方法:os.listdir() In [1]: import os In [4]: os.listdir('/root') Out[4] ...
- python index函数时间复杂度_如何确定Python中递归循环的时间复杂度?
分析此函数的主要挑战是没有那么多的递归调用,但每次调用都会返回一个逐渐增大和增大的元素列表.特别要注意的是,有n! n个元素列表的排列.因此,我们知道如果你在一个大小为n的列表上进行递归调用,将会有n ...
- Python中递归字符串反转
我们可以用Python轻松的反转字符串,代码如下: def reverse(s):if s == '':return selse:return reverse(s[1:]) + s[0]print(r ...
- python中处理日期和时间的标准模块是-2019python常见的170道面试题解析
语言特性 1.谈谈对 Python 和其他语言的区别 2.简述解释型和编译型编程语言 3.Python 的解释器种类以及相关特点? 4.说说你知道的Python3 和 Python2 之间的区别? 5 ...
- python 中常见的面试练习题
python 中常见的面试题 语言特性 编码规范 数据类型-字符串 数据类型 - 列表 数据类型 - 字典 数据类型 - 综合 操作类题目 高级特性 正则表达式 其他内容 算法和数据结构 爬虫类 网络 ...
最新文章
- SAP MM MIGO + 301 K 可以对供应商寄售库存跨工厂转库
- 表表达式,Substring, CharIndex, 多行数据变同一行的用法
- VC知识点:关于没有提示的内存泄露
- C#开发C/S结构如何通信的问题?
- 机器学习笔记:ResNet 及残差连接
- OpenCV蒙版图像make mask image的实例(附完整代码)
- python 求一个矩阵的距离矩阵的方法:
- 宏内核linux,Linux 为什么还要坚持使用宏内核?
- 2012.2.18-silverlight设计器崩溃
- 动态规划求解所有字符的组合数
- c语言 数组指针函数,C语言:数组 指针 函数
- 20169217 《Linux内核原理与分析》 第十周作业
- 微信小程序CSS之Flex布局
- 常微分方程组及高阶常微分方程的数值解法
- java 毕向东 笔记_毕向东Java基础部分笔记
- u盘在计算机打不开,别的电脑能打开u盘自己的怎么打不开解决方法
- 攻防世界MISC进阶区刷题记录
- No valid entries or contents found, this is not a valid OOXML (Office Open XML) file
- 如何证明二元函数的连续性 可…
- 苹果三代耳机_浅谈华强北最强Airpods Pro(苹果三代蓝牙耳机)到底怎么样?