用Python计算月中的天数

时间:2018-06-16 20:27:05

标签: python python-2.7

有人可以帮我解决我的python代码吗?

我正在学习python,我有一个错误,我无法解决,我无法理解错误。

所以任何人都可以帮我修理并告诉我为什么它错了?

def leap_year(year):
    if year % 400 == 0:
        return True
    elif year % 100 == 0:
        return False
    elif year % 4 == 0:
        return True
    else:
        return False

def days_in_month(month):
    if month == 1 or month == 3 or month == 5 or month == 7 \
    or month == 8 or month == 10 or month == 12:
        return month == 31
    elif month == 2:
        if leap_year(year):
            return 29
        else:
            return 28
    else:
        return 30

1 个答案:

答案 0 :(得分:1)

您的代码中存在一些错误:

  • days_in_monthmonthyear的函数。相应地定义它。
  • 返回month == 31没有任何意义。您的输出应该是天数,而不是布尔值。

此外,我已简化了您的代码,以减少or / if / elif / else语句的数量。

def leap_year(year):
    if year % 400 == 0:
        return True
    if year % 100 == 0:
        return False
    if year % 4 == 0:
        return True
    return False

def days_in_month(month, year):
    if month in {1, 3, 5, 7, 8, 10, 12}:
        return 31
    if month == 2:
        if leap_year(year):
            return 29
        return 28
    return 30

print(days_in_month(2, 2016))  # 29