def get_date(date):
month = date[4:7]
if month == "01":
month_string = "January"
elif month == "02":
month_string = "February"
elif month == "03":
month_string = "March"
elif month == "04":
month_string = "April"
elif month == "05":
month_string = "May"
elif month == "06":
month_string = "June"
elif month == "07":
month_string = "July"
elif month == "08":
month_string = "August"
elif month == "09":
month_string = "September"
elif month == "10":
month_string = "October"
elif month == "11":
month_string = "November"
elif month == "12":
month_string = "December"
return month_string
变量'date'是yyyy / mm / dd形式的输入字符串。
此函数测试输入yyyy / mm / dd中的月份是否为其中一个数字,并为该数字值指定一个字符串。这个决策结构不应该为month_string赋值吗?我不明白为什么不是。
答案 0 :(得分:1)
制作本:
def get_date(date):
month = date[5:7]
month_string = None
...
date[5:7]
是mm
部分,而date[4:7]
是/mm
此外,month_string = None
处理月份无效的情况。
答案 1 :(得分:1)
在分配本地变量之前引用它的原因是因为在每种情况下都没有分配month_string
。您分配的最后一个案例是elif
语句。由于Python不知道您的输入值只是那几个月,因此无法评估并绝对确定在month_string
语句之前正确分配了return
。
您可以在第一个month_string = None
声明之前写下if
。
def get_date(date):
month = date[5:7]
month_string = None
if month == "01":
month_string = "January"
...