Self123 发表于 2020-10-14 22:13:20

大佬请问 year%400 == 0 和 year/400 == int(year/400) 有啥区别吗?

我在Python入门第五讲做练习题的时候,判断给定年份是否为闰年。发现我写的跟答案有入出,第一个是我的,第二个是小甲鱼的答案。结果也能用,可是不知道有啥区别吗?
求大佬解疑

昨非 发表于 2020-10-14 22:18:58

本质是一样的,就是year能被四百整除的意思

一样判断闰年用取余号更舒服一点儿(个人感觉)、
不过大差不差,不用考虑那么多

Self123 发表于 2020-10-14 22:24:23

谢谢了老哥

冬雪雪冬 发表于 2020-10-14 22:28:13

通常的情况两个都行,一般用前一种比较多,而且效率也高些。更突出的问题是如果数字比较大,第二种方法还会出错
>>> y =10000000000000000000000000001
>>> y/400 == int(y/400)
True
>>> y%400==0
False

hrp 发表于 2020-10-14 22:30:00

本帖最后由 hrp 于 2020-10-15 07:54 编辑

Self123 发表于 2020-10-14 22:24
谢谢了老哥

值得注意的是 Python3 中 year/400 不管能不能整除,得出的永远是浮点数。

Self123 发表于 2020-10-15 18:28:42

冬雪雪冬 发表于 2020-10-14 22:28
通常的情况两个都行,一般用前一种比较多,而且效率也高些。更突出的问题是如果数字比较大,第二种方法还会 ...

谢谢涨姿势了

Self123 发表于 2020-10-15 18:29:17

hrp 发表于 2020-10-14 22:30
值得注意的是 Python3 中 year/400 不管能不能整除,得出的永远是浮点数。

哦就是几点几,谢谢大佬
页: [1]
查看完整版本: 大佬请问 year%400 == 0 和 year/400 == int(year/400) 有啥区别吗?