gpt4 book ai didi

python - 有没有办法在 Python 中将递归限制设置为无限?

转载 作者:行者123 更新时间:2023-12-03 20:17:18 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is the maximum recursion depth in Python, and how to increase it?

(19 个回答)


3年前关闭。




所以我试图制作一个简单的程序来计算谐波系列的总和,然后打印结果。但是递归限制阻止它继续。

这是程序:

def harm_sum(n):
if n < 2:
return 1
else:
return (1 / n) + (harm_sum(n - 1))

x = 1
while True:
print(x, harm_sum(x))
x += 1

尽管存在递归限制,但我希望程序继续运行有没有办法做到这一点?

最佳答案

直接回复 :不,您不能禁用堆栈限制;它的存在是为了避免用完所有可用的堆栈空间,这会在没有任何回溯信息的情况下使您的运行崩溃。

另外,请注意,不可能有无限的堆栈大小:每个堆栈帧都占用 RAM;你最终会用完并导致系统崩溃。

解决方法 :如果您可以处理严重崩溃,那么只需使用 sys.setrecursionlimit将其设置为超出系统的物理限制(取决于系统)。

真解 :正如 Juan 已经指出的,您可以简单地将递归重新编码为循环。

关于python - 有没有办法在 Python 中将递归限制设置为无限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49059133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com