数月之内编写程序

时间:2018-11-07 19:34:46

标签: python if-statement

因此,我试图编写一个代码,无论该月份是多少月,它都会向我返回该月的天数。这是我目前编写的代码。我有一些正确的月份,但其余的却没有。有人可以指出我在编码方面做错了什么吗?

def get_days_in_month (month):
    if (month == 2):
        return 28
    elif (month == 4 + 6 + 9 + 11):
        return 30
    elif (month == 1 + 3 + 5 + 7 + 8 + 10 +12):
        return 31
    else:
        return 31

2 个答案:

答案 0 :(得分:3)

更好的主意:

使用python内置的计算器。使用monthrange并传入年份和月份的(int)

  

monthrange(year,month):返回月份的第一天的工作日和月份中的天数,   指定的年份和月份

from calendar import monthrange

def get_days_in_month (year,month):
    month_data= monthrange(year, month)
    # If you only want DAYS, use month_data[1] 
get_days_in_month(2018,1)

答案 1 :(得分:2)

您要添加数字46911。您可以改为使用in keywordlist来测试month是否等于其中之一:

def get_days_in_month(month):

    if (month == 2):
        return 28
    elif (month in [4, 6, 9, 11]):
        return 30
    else:
        return 31