python使用布尔值判断闰年出错

新手上路,请多包涵

代码如下:

def is_leap(year):
    leap = False
    if year % 4 == 0:
        leap = True
        if year % 100 == 0 and year % 400 != 0:
        leap = False
    return leap


is_leap(7)
is_leap(12)
is_leap(100)
is_leap(400)

运行结果如下:
False
True
False
True

第二次将 leap 初始值设定为 True

def is_leap(year):
    leap = True
    if year % 4 == 0:
        leap = True
        if year % 100 == 0 and year % 400 != 0:
        leap = False
    return leap


is_leap(7)
is_leap(12)
is_leap(100)
is_leap(400)

运行结果如下,结果第一个变成了 True
True
True
False
True

这是怎么回事?

阅读 1.5k
1 个回答

判断任意年份是否为闰年,需要满足以下条件中的任意一个:
① 该年份能被 4 整除同时不能被 100 整除;
② 该年份能被400整除。

include <stdio.h>

int main()
{

int year,a;
printf("请输人年份:n");
scanf("%d",&year);
if(year%400==0)
    a=1;
else
{
    if(year%4==0&&year%100!=0)
        a=1;
    else
        a=0;
}
if(a==1)
{
    printf("%d 此年是闰年n",year);
}
else
{
    printf("%d 此年非闰年n",year);
}
return 0;

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题