所以昨天我从朋友那里得到了这个问题,关于一个程序,用python来检查一年是否是闰年,于是我决定帮忙。我把它写了下来,它似乎运行得很好,直到我输入1992作为输入,在这种情况下它返回false(不应该是这种情况)。所以我想知道我错在哪里了。
我的代码:
def is_leap(year):
leap = False
if (year % 4) == 0:
if (year % 100) == 0:
if (year % 400) == 0:
leap = True
else:
leap = False
else:
leap = False
else:
leap = False
return leap
year = int(input())
print(is_leap(year))
结果:1992 -〉错误
2条答案
按热度按时间vjrehmav1#
您的代码存在一些问题:首先,我会以部分相反的顺序进行检查,例如:
1.开始检查年份%400,
1.那么在第5行中就会出现一个逻辑错误:它必须
如果不是(年份% 100)== 0:
1.仅检查%4年
代码可以如下所示:
mkshixfv2#
问题在于嵌套的
if
语句。Leapyear为year % 100 != 0 and year % 4 == 0
或year % 400 == 0
。试试这个: