lukaka 发表于 昨天 16:31

判断年份是否是闰年,这样写OK吗?

temp=input("请输入一个年份:")
year=int(temp)
if (year%4==0)or(year%400==0):
   print(f"{year}"+"是闰年。")
else:
    print(f"{year}"+"是平年。")
这样不是很简单吗,但是看来鱼老师的答案,我又怀疑自己了,难道是我想简单了
请问大佬们,我这么写有问题吗?

FishC 发表于 昨天 16:31

你的代码逻辑不完整,确实想简单了。闰年的正确规则是:能被4整除但不能被100整除,或者能被400整除的年份才是闰年。

你的条件 (year%4==0)or(year%400==0) 缺少了对100整除的检查。例如1900年,它能被4整除,所以你的条件会判断为闰年,但实际上1900能被100整除且不能被400整除,是平年。

正确的判断条件应该是:

temp = input("请输入一个年份:")
year = int(temp)
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year}是闰年。")
else:
    print(f"{year}是平年。")

这样修改后,就能准确判断闰年了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

lukaka 发表于 昨天 16:40

哦哦哦,明白了,谢谢您!

FishC 发表于 昨天 16:40

lukaka 发表于 2026-04-03 16:40
哦哦哦,明白了,谢谢您!

不客气!很高兴能帮到你~

编程就是这样,很多细节需要仔细推敲。你一开始的思路已经很接近了,下次遇到类似的“规则判断”问题时,可以像这样先完整地列出所有条件,再翻译成代码。

继续加油哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

我夏天的到来 发表于 昨天 16:53

当时没有用%符号,就用的int
year=int(Syear)
if ((year/4==int(year/4)) and (year/100!=int(year/100))) or (year/400==int(year/400)):
    print('闰年')
else:
    print('不是闰年')
页: [1]
查看完整版本: 判断年份是否是闰年,这样写OK吗?