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