有人能帮我处理python代码吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (41)

我有一个错误,我无法修复,我也不知道出了什么问题,代码如下:

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
提问于
用户回答回答于

你的代码中有几个bug:

  • days_in_month是两者的函数monthyear。相应地定义它。
  • 回归month == 31毫无意义。你的输出应该是几天,而不是Boolean。

此外,我还简化了你的代码,以减少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

扫码关注云+社区

领取腾讯云代金券