带有整数条件的 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
或零,循环就会执行。
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
或零,循环就会执行。