Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 为什么我的局部变量在有条件赋值时被称为未赋值?_Variables_Python 3.x_Local - Fatal编程技术网

Variables 为什么我的局部变量在有条件赋值时被称为未赋值?

Variables 为什么我的局部变量在有条件赋值时被称为未赋值?,variables,python-3.x,local,Variables,Python 3.x,Local,变量“date”是一个输入字符串,格式为yyyy/mm/dd 此函数测试输入yyyy/mm/dd后的月份是否为这些数字之一,并为该数字值分配一个字符串。这个决策结构不应该给month\u字符串赋值吗?我不明白为什么不是这样。做这个: def get_date(date): month = date[4:7] if month == "01": month_string = "January" elif month == "02": month_string = "Februar

变量“date”是一个输入字符串,格式为yyyy/mm/dd

此函数测试输入yyyy/mm/dd后的月份是否为这些数字之一,并为该数字值分配一个字符串。这个决策结构不应该给month\u字符串赋值吗?我不明白为什么不是这样。

做这个:

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[5:7]
mm
部分,而
date[4:7]
/mm


另外,
month\u string=None
处理月份无效的情况。

在分配局部变量之前引用它的原因是,
month\u string
并非在所有情况下都分配。最后一个赋值的案例是
elif
语句。由于Python不知道您的输入值将仅为这些月份,因此它无法计算并绝对确定
month\u字符串
return
语句之前已正确分配

def get_date(date):
    month = date[5:7]
    month_string = None
    ...
您可以在第一个
if
语句之前编写
month\u string=None

def get_date(date):
    month = date[5:7]
    month_string = None
    ...

缩进在我的python屏幕中是正确的,它们没有在这里交叉,对不起!