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

为何这段闰年判断代码第二行需用if而非elif?

闰年判断代码中elif报错的原因解析

你遇到的问题核心是Python的elif语法规则限制:

问题代码

if year % 4 == 0:
  elif year % 100 != 0: 
    print("Leap year.")
  elif year % 100 == 0:
    if year % 400 !=0:
      print("Not leap year.")
    elif year % 400 == 0:
      print("Leap year.")
else:
  print("Not leap year.")

报错原因

Python里elif是分支延续语句,它必须紧跟在一个完整的if或elif代码块之后,不能直接接在空的if声明后面。

看你的代码:第一行if year % 4 == 0:之后没有任何缩进的执行代码(哪怕是pass这种占位语句),直接跳去写elif,这属于语法错误——解释器不知道这个elif是哪个if的分支延续。

而你代码后面的elif year % 400 == 0:是紧跟在if year % 400 !=0:的代码块之后,完全符合elif的语法要求,所以能正常运行。

修正后的代码示例

把分支逻辑调整成符合语法的结构,比如:

if year % 4 != 0:
    print("Not leap year.")
elif year % 100 != 0:
    print("Leap year.")
else:
    print("Leap year." if year % 400 == 0 else "Not leap year.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 08:42:05