橘猫啊啊 发表于 2020-6-9 00:27:03

关于判断闰年

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

year = int(temp)
if year/400 == int(year/400):
    print(temp + ' 是闰年!')
else:
    if (year/4 == int(year/4)) and (year/100 != int(year/100)):
      print(temp + ' 是闰年!')
    else:
      print(temp + ' 不是闰年!')



temp = input('请输入一个年份:',)
while not temp.isdigit():
    temp = input('你要输入一个数字哦:')

year = int (temp)
if year/4 == int(year/4):
    print(temp + '是闰年')
else:
    print(temp + '不是闰年')

有什么不同吗,后者更加容易呀

XiaoPaiShen 发表于 2020-6-9 00:57:47

目前使用的格里高利历闰年规则如下:

公元年分非4的倍数,为平年。
公元年分为4的倍数但非100的倍数,为闰年。
公元年分为100的倍数但非400的倍数,为平年。
公元年分为400的倍数,为闰年。

XiaoPaiShen 发表于 2020-6-9 01:00:01

XiaoPaiShen 发表于 2020-6-9 00:57
目前使用的格里高利历闰年规则如下:

公元年分非4的倍数,为平年。


神秘小帅哥 发表于 2020-6-9 11:07:59

能被4整除但不能被100整除是闰年
或者能被400整除的是闰年
你的代码中后者写的不对,并不是判断闰年的

橘猫啊啊 发表于 2020-6-9 14:27:39

XiaoPaiShen 发表于 2020-6-9 00:57
目前使用的格里高利历闰年规则如下:

公元年分非4的倍数,为平年。


逻辑有点不通耶
能被100整除的,不是一定就能被4整除吗
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
      print(temp + ' 是闰年!')
    else:
      print(temp + ' 不是闰年!')
ln1跳到ln4有点不明白,假如我输入1900,对于 (year/4 == int(year/4))是True的
(year/100 != int(year/100))也是True的,那怎么跳到else去了呢?

XiaoPaiShen 发表于 2020-6-9 22:22:26

橘猫啊啊 发表于 2020-6-9 14:27
逻辑有点不通耶
能被100整除的,不是一定就能被4整除吗



这句的逻辑是:能被4整除,但不能被100整除的是闰年,否则是平年。
1900能被100整除,所以不是闰年
页: [1]
查看完整版本: 关于判断闰年