带有整数条件的 while 循环?

While loop with an integer condition?

def gcd(x, y):
       while(y): x, y = y, x % y
       return x

上面的函数returns求两个数的最大公约数。 为什么在while循环中使用y作为条件?

while 语句中的表达式将被计算为布尔值。整数 0 的计算结果为 False,其他所有整数的计算结果为 True.

你的说法等同于while y != 0:

这是因为 x % y 会在循环的每次迭代中将 y 减少为 x / y 的余数(也称为模数)。因此,只要 y 'is true' 或者换句话说只要 y 的值不是 None 或零,循环就会执行。