Python 无法理解我的代码有什么问题

Python 无法理解我的代码有什么问题,python,python-3.x,Python,Python 3.x,写一个函数名“month_days”,它接收一个参数(m),表示1-12(一年中的月份)之间的数字。函数返回当月的天数[在1月(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

写一个函数名“month_days”,它接收一个参数(m),表示1-12(一年中的月份)之间的数字。函数返回当月的天数[在1月(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显示代码有问题,我无法理解问题出在哪里

m=1本质上是将m作为变量=传递给任何值。 您需要使用==作为比较运算符

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


你想创建一个月和日的字典([('sape',4139),('guido',4127),('jack',4098)]) {'sape':4139,'guido':4127,'jack':4098}

然后说{if jan in dict:print jan}

它应该还你钥匙
(伪代码)

< p>其他人已经回答了你的问题,但是请不要这样写代码。考虑以下内容:

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]

或者使用另一种解决方案,如

它在语法上无效,赋值和比较是两件不同的事情。使用
=
比较两个值。
=
赋值真的很愚蠢吗?谢谢:)
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]