遇到了错误:UnboundLocalError: local variable ‘a’ referenced before assignment
代码:
a = 1
b = 2
def test1():
print("a=",a)
print("b=",b)
def test2():
a += 1
b += 1
def test3():
a = 3
print(a)
test1()
test2()
test3()
test1()
这里test1函数只打印a的值不会出错,test3函数中进行打印显示a值为3,但是并未改变全局变量的值,在test3中的a是个局部变量,但是在test2中会出错,因为此时的a要在test2中进行赋值,作为全局变量不能在这个局部进行赋值,但是作为局部变量在该函数中又没有初值无法自增,所以出错了
同理,对于以下代码:
li = [1,2,3,4]
def test2():
if li != []:
li = []
#li.clear()
print(li)
同样会报错,原理一样,python解释器分不清li是局部变量还是全局变量了,去掉if li != []:或者li=[]都可以,化解错误,如果采用li.clear()的方式也可以完成这项工作,只是不能赋值
对于增加数据的也可以用append进行增加,对于一次性增加多个的,只能靠遍历添加了