Python入门最新版中关第10讲于闰年的计算代码
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’? 1900年并不是闰年,请百度 不对,改成‘or’也有问题,涉及到小数转换了 普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。 ..
这样的话1900年能被4整除但是不能被100整除
1900 % 100 != 0 ??? 洋洋痒 发表于 2021-4-1 16:41
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公 ...
1900/4 =475,不是100的倍数呀,为啥不是闰年? 1900年能被4整除也能被100整除 zhou8491029 发表于 2021-4-1 16:44
1900/4 =475,不是100的倍数呀,为啥不是闰年?
1900/100=19
明明就是100的19倍 洋洋痒 发表于 2021-4-1 16:45
1900/100=19
明明就是100的19倍
我了个去,我这思路简直了、、、、丢人 了,谢谢谢谢!!! qiuyouzhi 发表于 2021-4-1 16:43
..
1900 % 100 != 0 ???
我一时蒙圈了,哈哈哈 逃兵 发表于 2021-4-1 16:44
1900年能被4整除也能被100整除
是的是的,我是个大傻子,一时蒙圈了 本帖最后由 Peteryo01223 于 2021-4-1 17:45 编辑
1900 不是闰年,这是人为的规定。
闰年,源于,地球相对太阳自转一周所经历的时间,365.2422日。不论“闰年”还是“闰月”的概念,根本上,都是在根据这个365.2422的不规则数字,调整日历,以便人类纪年与实际的地球相对太阳自转保持着相对的一致性。调整越微小、误差越小、越简洁,越好。
公历中,如果被4整除的都算是闰年,又有些多了,即:调过头了。因为 0.2422 < 0.25, 说明每四年加一天的话,略微多了点。人类只好再加一个规定,把1900 这些能被100整除,但不能被400整除的,剔除了。最后,人为定下了,你问的这句 code 表示的、这个看似“奇葩”的闰年规则。
Peteryo01223 发表于 2021-4-1 17:35
1900 不是闰年,这是人为的规定。
闰年,源于,地球相对太阳自转一周所经历的时间,365.2422日。不论“ ...
谢谢,我只是一时糊涂,没有算清楚1900/100也是整数了 qiuyouzhi 发表于 2021-4-1 16:43
..
1900 % 100 != 0 ???
我想错了,想成1900/4 = 475后,475不是100的倍数,不过还是谢谢你
页:
[1]