You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python闰年判断代码疑问:为何采用(year % 100 != 0 or year % 400 == 0)逻辑

理解闰年判断代码里的逻辑部分

首先得明确公历闰年的判定规则,这是这段代码的核心依据:

  • 普通闰年:能被4整除,但不能被100整除的年份(比如2020、2024)
  • 世纪闰年:能被400整除的整百年份(比如2000,而1900不是)

教授写的(year % 100 != 0 or year % 400 == 0),就是把上面两个规则用逻辑表达式翻译了出来:

  • year % 100 != 0:对应「不能被100整除」,配合前面的year % 4 == 0,就覆盖了普通闰年的情况
  • year % 400 == 0:对应「能被400整除」,专门处理整百年份的特例——毕竟整百年份能被4整除,但大部分不是闰年,只有能被400整除的才是

结合完整代码来看:

def leap(year):
    return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)

整个表达式的意思就是:年份能被4整除,并且(要么不能被100整除,要么能被400整除),完全匹配闰年的判定规则。

举几个例子验证:

  • 2020:2020%4==0为True,2020%100!=0为True → 整体返回True(是闰年)
  • 1900:1900%4==0为True,但1900%100!=0为False,1900%400==0也为False → 整体返回False(不是闰年)
  • 2000:2000%4==0为True,2000%400==0为True → 整体返回True(是闰年)

内容的提问来源于stack exchange,提问作者Sugandha Tondon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:31:04