Python新手求助:判断闰年函数无返回值,代码问题排查
你的闰年判断程序没输出的原因及修复方案
嘿,作为Python新手遇到这种问题很正常,咱们一步步拆解你的代码问题:
问题1:缩进错误(Python的核心规则!)
Python是靠缩进区分代码块的,你定义函数leap_y之后,函数内部的代码(比如leap = False、if判断这些)都没有缩进,这会导致函数实际上是空的,或者代码不属于函数体,运行时根本不会执行到判断逻辑。
问题2:闰年判断逻辑搞反了
正确的闰年规则是:
- 能被4整除,但不能被100整除;或者
- 能被400整除的年份
你写的条件year % 4 == 0 and (year % 400 == 0 or year % 100 == 0) 会把很多非闰年也判定为闰年(比如1900年,能被100整除但不能被400整除,不是闰年,但你的条件会错误认为它是闰年)。
问题3:没有调用函数并输出结果
你最后获取了输入的年份,但既没有调用leap_y(year)函数,也没有打印返回的布尔值,所以程序运行后自然看不到任何输出。
修正后的完整代码
def leap_y(year): leap = False # 修正后的闰年判断逻辑 if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0): leap = True return leap year = int(input()) # 调用函数并打印结果 print(leap_y(year))
你可以运行这段代码试试,输入不同的年份(比如2000、1900、2024)就能看到正确的布尔结果啦!
内容的提问来源于stack exchange,提问作者NelsonNN
相关产品推荐
相关产品推荐

