Python教程

PYTHON栈溢出BUG

本文主要是介绍PYTHON栈溢出BUG,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
# 用递归的方式实现阶乘
def funcl1(n):
    if n == 1:
        return 1
    return funcl1(n - 1) * n
print(funcl1(4))
print(funcl1(999)) 

运行之后报错:

RecursionError: maximum recursion depth exceeded in comparison

原因分析: 

  递归要防止栈溢出。进入函数的时候,栈调用增加一层,出函数的时候减一层。
  python中栈最高998层,所以funcl1(998)正常,funcl1(999)报错。

这篇关于PYTHON栈溢出BUG的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!