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

Python闰年校验两段代码输出不一致,排查第一段代码的错误原因

第一段闰年校验代码错误排查

核心问题

第一段代码的分支判断逻辑完全不符合标准闰年判定规则,仅将「同时能被4、100、400整除的年份」判定为闰年,遗漏了「能被4整除但不能被100整除的年份同样属于闰年」这一核心判定条件。

逻辑对比

标准闰年判定规则有两个:

  • 普通年份:能被4整除,且不能被100整除,即为闰年
  • 世纪年份(能被100整除的年份):必须能被400整除才是闰年

第二段嵌套判断的逻辑完全匹配上述规则,而第一段代码的if div4by == 0 and div100by == 0 and div400by == 0条件,仅覆盖了世纪年是闰年的情况,完全漏掉了普通闰年的判定,因此会出现大量误判。比如2024年属于普通闰年,按照第一段代码的逻辑会被错误判定为非闰年。

代码修复方案

只需将第一段代码的if判断条件替换为符合规则的逻辑即可,修复后代码如下:

print("Welcome to Leap Year Finder!")

year = int(input("Write a year to check..\n"))

div4by = year % 4
div100by = year % 100
div400by = year % 400

# 修正后的判断逻辑
if (div4by == 0 and div100by != 0) or (div400by == 0):
    print(f"Year {year} is Leap Year!")
else:
    print(f"Year {year} is Not Leap Year!")

内容的提问来源于stack exchange,提问作者R. Moshiur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:18:00