跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Python 函数在循环中递归调用时,为什么会出现无限循环?

python函数在循环中调用的陷阱 在编写 python程序 时,当函数在循环体内被递归调用时,可能会出现问题。考虑以下求 最大公约数 的示例代码:
a = 666 b = 1414 def gcd(x, y): x, y = y, x % y while x % y > 0: gcd(x, y) else: return y print(gcd(666, 1414))
这段代码无法正确运行,因为函数gcd在循环体内被递归调用时,缺少return语句。这会导致函数在以下代码块中陷入无限循环:
x, y = y, x % y while x % y > 0: gcd(x, y)
为了解决这个问题,需要在gcd函数中添加return语句,以从递归调用中返回: Python 3.14.3 微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。 下载 立即学习 “ Python免费学习笔记(深入) ”;
def gcd(x, y): x, y = y, x % y while x % y > 0: return gcd(x, y) else: return y
添加return语句后,代码将按预期工作,并打印最大公约数(在本例中为2)。

相关文章