文章目录
-
- 一、问题描述
- 二、报错情况:for循环导致
-
- 解决办法1:添加else条件
- 解决办法2:return的变量进行初始化
- 总结
一、问题描述
- 在运行python程序时,代码报错
UnboundLocalError: local variable 'XXX' referenced before assignment
- 下面我模拟我遇到过的情况:
- 情况一:当for循环时,如果有一个参数没有初始化或者没有进行调用,直接return返回数值时,会出现报错。
二、报错情况:for循环导致
'''
当for循环时,如果有一个参数没有初始化或者没有进行调用,直接return返回数值时,会出现报错。
'''
def demo(test_str):
if test_str.find(',') != -1:
result = test_str.split(',')
elif test_str.find('=') != -1:
result = test_str.split('=')
return result
if __name__ == '__main__':
lis = [
'1,2,3',
'4=5=6',
'7!8!!9'
]
for row in lis:
result = demo(row)
print(result)
解决办法1:添加else条件
运行结果:
解决办法2:return的变量进行初始化
运行结果:
总结
UnboundLocalError: local variable 'result' referenced before assignment
(在赋值前引用局部变量’result’)
原因是python是解释型语言,python的变量不需要声明,但是需要初始化。
在本博客的案例中,一开始是因为result并没有进行初始化但进行了return返回导致的。