Python报错:UnboundLocalError: local variable ‘result‘ referenced before assignment

文章目录

    • 一、问题描述
    • 二、报错情况:for循环导致
      • 解决办法1:添加else条件
      • 解决办法2:return的变量进行初始化
    • 总结

一、问题描述

  • 在运行python程序时,代码报错UnboundLocalError: local variable 'XXX' referenced before assignment
  • 下面我模拟我遇到过的情况:
    • 情况一:当for循环时,如果有一个参数没有初始化或者没有进行调用,直接return返回数值时,会出现报错。

二、报错情况:for循环导致

  • demo代码如下:
'''
    当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)
  • 代码运行结果如下:

Python报错:UnboundLocalError: local variable ‘result‘ referenced before assignment_第1张图片

解决办法1:添加else条件

Python报错:UnboundLocalError: local variable ‘result‘ referenced before assignment_第2张图片
运行结果:
在这里插入图片描述

解决办法2:return的变量进行初始化

Python报错:UnboundLocalError: local variable ‘result‘ referenced before assignment_第3张图片
运行结果:
在这里插入图片描述

总结

UnboundLocalError: local variable 'result' referenced before assignment(在赋值前引用局部变量’result’)
原因是python是解释型语言,python的变量不需要声明,但是需要初始化
在本博客的案例中,一开始是因为result并没有进行初始化但进行了return返回导致的。

你可能感兴趣的:(BUG,python)