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