闰年计算器不打印任何输出

时间:2016-11-27 06:39:09

标签: python python-3.x

year = int(input("Enter a year: "))
if (year % 4) == 0:
    if (year % 100) == 0 and (year % 400) == 0:
        print (year, "IS a leap year.")
else:
    print (year, "is NOT a leap year.")

由于某种原因,程序在输入后不会打印任何内容。

如果有人需要,这里是闰年规则的链接:https://www.wwu.edu/skywise/leapyear.html

2 个答案:

答案 0 :(得分:0)

嗯,没有打印任何内容的原因正如@John Gordon所说:在你的程序中遗漏了一些 else子句。我已修改为以下代码:

year = int(input("Enter a year: "))
if (year % 4) == 0:
    if (year % 100) == 0 and (year % 400) != 0:
        print (year, "is NOT leap year.")
    else:
        print (year, "is a leap year.")
else:
    print (year, "is NOT a leap year.")

当一年可以除以4时,可能是闰年。从这个意义上说,当它可以除以100但不能除以400时,它不是闰年。在其他情况下。在year % 4 == 0情况下,只需您就会遗漏某些案例

对我来说,我通常用以下代码判断闰年:

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

答案 1 :(得分:0)

这是我的程序取自“The C Programming Language 2nd Edition”:

year = int(input("Enter a year: "))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print "Leap year"
else:
    print "Not leap"

我认为您提到的链接上提供的规则是错误的。闰年应该可以被4整除,并且必须可以被100整除。但是,如果它可以被100整除但也可以被400整除,那么就是跳跃。