添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

今天练习递归函数调用时,明明逻辑都合理,却总是报错,报错信息如下所示:
在这里插入图片描述
报错信息大概可以简化为下面这句话:

RecursionError: maximum recursion depth exceeded in comparison

查阅资料得知,这是因为超过了最大递归深度,才会报错。这时候就需要 **将系统的最大递归深度值修改的大一点。**只要在函数前面加入以下语句就可以了:

import sys
sys.setrecursionlimit(100000)

括号里的数值可以根据想要的递归深度去填写,自行斟酌

但是,递归函数的实现很容易导致递归深度过大而导致[递归错误:递归深度超过最大限制]。然而,递归函数也有其缺点:递归层数过多容易出现[递归错误:递归深度超过最大限制],导致程序崩溃。然而,当n取值较大,程序就会出现[递归错误:递归深度超过最大限制]。总之,Python中的递归函数虽然便于编写和理解,但在应用需要注意递归深度限制问题,并尽可能使用循环实现代替递归实现。上述代码中,使用循环代替递归,可以有效避免递归深度过大而导致的错误。为了避免这种情况,可以增加递归深度限制,但这并不是解决问题的根本方法。
pyinstaller 打包.py生成exe报错RecursionError: maximum recursion depth exceeded in comparison 报错超过最大迭代次数 解决:在生成的.spec文件的第二行加入: import sys sys.setrecursionlimit(100000) 然后直接打包.spec文件 pyinstaller xxx.spec
今天在用python写一个递归查询数据库的程序,报了一个错误: 错误的大致意思就是查询过相关文档和资料后才发现了问题原因,python递归深度是有限制的,默认为1000。当递归深度超过1000,就会报错。可以将递归深度修改的大一些,即可解决问题,但是还是建议在程序中不要使用太深的递归层数。 4. 补充测试 由于对最大递归层数产生兴趣,于是我在自己电脑上用以下代码做了测试: 在,再执行上面的代码,发现最多也只是。 系统为了保证自己不会内存溢出,把它关了。要不然就是Python为了保证电脑不会****,