
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 在自身的循环体内被调用时,没有返回任何值。
为了解决这个问题,需要在 gcd 函数的循环体中添加 return 语句:
立即学习“Python免费学习笔记(深入)”;
a = 666
b = 1414
def gcd(x, y):
x, y = y, x % y
while x % y > 0:
return gcd(x, y) # 此处添加了 return
else:
return y
print(gcd(666, 1414))现在,当 gcd 在循环体内被调用时,它会返回一个值,并退出循环。这解决了循环调用问题,程序可以正常运行并计算最大公约数。










