鱼C论坛

 找回密码
 立即注册
查看: 1935|回复: 13

[已解决]Python入门最新版中关第10讲于闰年的计算代码

[复制链接]
发表于 2021-4-1 16:38:24 | 显示全部楼层 |阅读模式

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

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

x
year = input('请输入一个年份:')

while not year.isdigit():
    year = input("抱歉,您的输入有误,请输入一个整数:")

year = int(year)
if year % 400 == 0:
    print(year, "是闰年!")
else:
    if year % 4 == 0 and year % 100 != 0:
        print(year, "是闰年!")
    else:
        print(year, "不是闰年!")


这个代码 if year % 4 == 0 and year % 100 != 0:
用and连接好像不对吧,这样的话1900年能被4整除但是不能被100整除,也是闰年才对,可是程序运行出来是“不是闰年”,所以用and连接符有问题的吧?
是不是应该用‘or’?
最佳答案
2021-4-1 16:45:03
zhou8491029 发表于 2021-4-1 16:44
1900/4 =475,不是100的倍数呀,为啥不是闰年?

1900/100=19
明明就是100的19倍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-1 16:39:55 | 显示全部楼层
1900年并不是闰年,请百度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-1 16:40:39 | 显示全部楼层
不对,改成‘or’也有问题,涉及到小数转换了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-1 16:41:02 | 显示全部楼层
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-1 16:43:00 | 显示全部楼层
..
这样的话1900年能被4整除但是不能被100整除

1900 % 100 != 0 ???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-1 16:44:10 | 显示全部楼层
洋洋痒 发表于 2021-4-1 16:41
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公 ...

1900/4 =475,不是100的倍数呀,为啥不是闰年?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-1 16:44:12 | 显示全部楼层
1900年能被4整除也能被100整除
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-1 16:45:03 | 显示全部楼层    本楼为最佳答案   
zhou8491029 发表于 2021-4-1 16:44
1900/4 =475,不是100的倍数呀,为啥不是闰年?

1900/100=19
明明就是100的19倍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-1 16:47:18 | 显示全部楼层
洋洋痒 发表于 2021-4-1 16:45
1900/100=19
明明就是100的19倍

我了个去,我这思路简直了、、、、丢人 了,谢谢谢谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-1 16:50:00 | 显示全部楼层
qiuyouzhi 发表于 2021-4-1 16:43
..

1900 % 100 != 0 ???

我一时蒙圈了,哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-1 16:50:35 | 显示全部楼层
逃兵 发表于 2021-4-1 16:44
1900年能被4整除也能被100整除

是的是的,我是个大傻子,一时蒙圈了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-1 17:35:14 | 显示全部楼层
本帖最后由 Peteryo01223 于 2021-4-1 17:45 编辑

1900 不是闰年,这是人为的规定。

闰年,源于,地球相对太阳自转一周所经历的时间,365.2422日。不论“闰年”还是“闰月”的概念,根本上,都是在根据这个365.2422的不规则数字,调整日历,以便人类纪年与实际的地球相对太阳自转保持着相对的一致性。调整越微小、误差越小、越简洁,越好。

公历中,如果被4整除的都算是闰年,又有些多了,即:调过头了。因为 0.2422 < 0.25, 说明每四年加一天的话,略微多了点。人类只好再加一个规定,把1900 这些能被100整除,但不能被400整除的,剔除了。最后,人为定下了,你问的这句 code 表示的、这个看似“奇葩”的闰年规则。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-2 08:13:13 | 显示全部楼层
Peteryo01223 发表于 2021-4-1 17:35
1900 不是闰年,这是人为的规定。

闰年,源于,地球相对太阳自转一周所经历的时间,365.2422日。不论“ ...

谢谢,我只是一时糊涂,没有算清楚1900/100也是整数了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-2 08:18:38 | 显示全部楼层
qiuyouzhi 发表于 2021-4-1 16:43
..

1900 % 100 != 0 ???

我想错了,想成1900/4 = 475后,475不是100的倍数,不过还是谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 20:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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