无法理解我的代码出了什么问题

时间:2019-04-14 19:39:39

标签: python python-3.x

写一个函数名称“ month_days”,该函数接收一个代表1到12(一年中的月份)之间数字的参数(m)。该函数返回当月的天数(在一月(1)有31天,依此类推)。如果数字不在1-12之间,则该函数将返回-1

def month_days(m):
    if m = 1:
        return 31
    elif m = 2:
        return 28
    elif m = 3:
        return 31
    elif m = 4:
        return 30
    elif m = 5:
        return 31
    elif m = 6:
        return 30
    elif m = 7:
        return 31
    elif m = 8:
        return 31
    elif m = 9:
        return 30
    elif m = 10:
        return 31
    elif m = 11:
        return 30
    elif m = 12:
        return 31

IDE显示代码有问题,我无法理解有什么问题

4 个答案:

答案 0 :(得分:1)

其他人回答了您的问题,但请不要编写这样的代码。请考虑以下内容:

def days_in_month(m):
    assert m in range(1, 13)
    return [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][m-1]

或使用其他解决方案,例如How do we determine the number of days for a given month in python

答案 1 :(得分:0)

m = 1实际上是使m成为您要传递的任何值的变量=。 您需要使用==作为比较运算符。

def month_days(m):
    if m == 1:
        return 31

答案 2 :(得分:0)

尝试:

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

答案 3 :(得分:0)

您要创建一个包含月份和日期的字典([('sape',4139),('guido',4127),('jack',4098)]) {'sape':4139,'guido':4127,'jack':4098}

然后说出{if jan:dict jan}

,它应该返回您的密钥 (伪代码)