year = int(input("输入一个年份:"))
if (year % 4) == 0:
    if (year % 100) == 0:
        if (year % 400) == 0:
            print("{0} 是闰年".format(year))
        else:
            print("{0} 不是闰年".format(year))
    else:
        print("{0} 是闰年".format(year))
else:
    print("{0} 不是闰年".format(year))

逻辑:

1.

非整百年份:能被4整除的是闰年。(如2004年就是闰年,2001年不是闰年)

2.

整百年份:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)

3.

对于数值很大的年份:如果这一年能被3200整除,那么这一年不是闰年,但如果这一年能被172800整除,则为闰年。

简洁优化:

year = int(input("请输入一个年份:"))
if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
    print("{0}是闰年".format(year))
else:
    print("{0}不是闰年".format(year))

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐