python中设定递归深度

python中设定递归深度

递归调用中如果出现无限递归或过多的堆栈层级(占用大量的内存)会导致堆栈溢出。
在默认的情况下,python中执行以下程序就会报错。

def fact(n):
    if n == 1:
        return 1
    else:
        return n*fact(n-1)
        
print(fact(999))

出错提示信息:

RecursionError: maximum recursion depth exceeded in comparison

(递归错误:比较中超出最大递归深度)

在确定不是无限递归的情况下,可以使用sys.setrecursionlimit(n)来增加递归深度:
sys.getrecursionlimit() 获取当前的最大递归深度(默认是1000)
sys.setrecursionlimit(n) 设定最大递归深度

在上面程序的开始处加入:

import sys

sys.setrecursionlimit(10000)

再运行程序就不会有错误,能得到运行结果。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,391评论 17 410
  • 这个不错分享给大家,从扣上看到的,就转过来了 《电脑专业英语》 file [fail] n. 文件;v. 保存文...
    麦子先生R阅读 11,854评论 5 24
  • 最近聊了好多好多,从之前觉得搞个对象吧,到今天突然意识到我百分之很多の可能会嫁给你,老公,跟你在一起,我真的很幸福...
    天_天阅读 1,382评论 0 0
  • 人生之路且慢悠长,尤如过客来也匆匆、去也匆匆,一路风雨兼程。
    郭大_da71阅读 1,540评论 0 0
  • 我为你写了一首情诗 可是我实在是太不注意 写了太多心声 还未等寄出 那信纸,就自己烧了起来 我为你写了一首情诗 它...
    丁一文阅读 1,319评论 0 2

友情链接更多精彩内容