小银 发表于 2021-1-22 14:04:49

python小白求助

def gcd(x,y):
    while y:
      t=x % y
      x=y
      y=t
    return x
print(gcd(4,6))



这个函数中 while y 是什么意思?就是y代表了什么意思?还有这个是怎么退出循环的,就是什么时候y不符合了?这边一直不太清楚。

wARtist 发表于 2021-1-22 14:10:09

y是逻辑判断,如果y不为零则执行循环,否则就退出循环

jackz007 发表于 2021-1-22 14:10:17

    y 值不为 0 就是 True

kogawananari 发表于 2021-1-22 14:11:34

while y可以看成 while bool(y)的简写
if y也可以看成 if bool(y)数字类型的话 只有bool(0)返回False

小银 发表于 2021-1-22 14:12:04

求助

昨非 发表于 2021-1-22 14:24:05

本帖最后由 昨非 于 2021-1-22 14:26 编辑

小银 发表于 2021-1-22 14:12
求助

while y 是while y!=0 的缩写形式,

由此可知,循环退出的条件是y一直取余,直到y=0的时候
如果还不理解,可以参考辗转相除法的定义
以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数

小银 发表于 2021-1-23 12:30:41

kogawananari 发表于 2021-1-22 14:11
while y可以看成 while bool(y)的简写
if y也可以看成 if bool(y)数字类型的话 只有bool(0)返回False

谢谢啦

心驰神往 发表于 2021-1-23 13:58:11

小银 发表于 2021-1-23 12:30
谢谢啦

问题解决的话,请设置最佳答案
页: [1]
查看完整版本: python小白求助