鱼C论坛

 找回密码
 立即注册
查看: 1165|回复: 4

[已解决]求助关于%的问题

[复制链接]
发表于 2018-9-13 09:15:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是小甲鱼在17讲课后作业的一串代码,求最大公约数:
def gcd(x, y):
    while y:
        t = x % y
        x = y
        y = t

    return x
   
print(gcd(4, 6))

平时当输入 print (2%0) 时会报错,原因除数不能为0
但为什么这个代码y为0时不会报错,而且 t 还会为0呢?
最佳答案
2018-9-13 09:25:24
返回值可以为0,表示整除了

这里当y为0的时候循环结束了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-13 09:21:55 | 显示全部楼层
y为0就退出循环,不会执行%计算当然不会报错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-13 09:25:24 | 显示全部楼层    本楼为最佳答案   
返回值可以为0,表示整除了

这里当y为0的时候循环结束了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-13 09:25:32 From FishC Mobile | 显示全部楼层
是的楼上正解,y = 0 为退出条件。t = x % y,然后 y = t。所以没有除以零的情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-13 10:37:09 | 显示全部楼层
个人看法 :
1.  y =0 时 while 循环就没有进去 ,t=x%y没执行,所以不会报错
2.  按照Python语法  和 你的缩进可以判断出 t = x % y  x = y   y = t  这三条语句都是循环里面的 所以说也不会去执行  
3.  最后t=0 应该是给的默认值,对Python了解不多,应该是这样。你可以给t 个默认值  测试一下就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-15 04:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表