Python 函数循环调用时为何无法运行?

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 语句。当 gcd(x, y) 第一次调用自身时,它并没有返回结果,导致函数无限循环。

正确的代码如下:

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))

添加 return 语句后,每次递归调用 gcd 都会返回结果,并继续在调用函数中执行,最终返回最大公约数。

以上就是Python 函数循环调用时为何无法运行?的详细内容,更多请关注其它相关文章!