我正在编写一个函数,如果参数是闰年,则返回True
,如果不是,则返回False
,但由于某种原因它返回True
无论什么整数值被传递。由于它返回的局部变量初始化为True
,我怀疑问题可能是它没有被更新,即使满足必要的条件:
def is_leap(year):
leap = True
if year%4 == 1:
leap = False
elif year%100 == 0 and year%400 == 1:
leap = False
return leap
for ayear in [1944,2011,1986,1800,1900,2000,2056]:
print(is_leap(ayear)) #this returns True for every item?????
任何帮助?
答案 0 :(得分:1)
n%2 == 0
。我刚把条件改为
if year%4 != 0:
leap = False
elif year%100 == 0 and year%400 != 0:
leap = False
现在工作正常。
答案 1 :(得分:1)
我知道在php中解决它,你的条件错了!!!
$arr = array(1944, 2011, 2012, 2013, 2014, 1986, 1800, 1900, 2000, 2056);
function leapYear($year){
if(($year % 4) == 0 && ($year % 100) != 0){
return true;
}
else{
return false;
}
}
for($i = 0; $i < count($arr) ; $i++){
$r = leapYear($arr[$i]);
if($r){
echo 'Lepo year: ' . $arr[$i] . '<br>';
}else{
echo 'Not Leap year: ' . $arr[$i] . '<br>';
}
}