a=[['1','2'],['3']]
p=[]
def main():
for i in range(len(a)):
p=p+a[i]
print(p)
main()
#运行后报错
UnboundLocalError: local variable 'p' referenced before assignment
解决办法,新建一个局部变量,将运行结果赋值给局部变量后再赋值给全局变量
a=[['1','2'],['3']]
p=[]
def main():
k=[]
for i in range(len(a)):
k=k+a[i]
p=k
print(p)
main()
#运行后结果
['1', '2', '3']
虽然解决了这个问题,但是我并没有想出是为什么(应该和循环结构下的变量作用域有关),因为单纯运行代码
a=[['1','2'],['3']]
p=[]
def main():
print(p)
main()
就能正常输出“[]”,期待一个有缘人能帮我解答一下,若哪天我知道原因了再来添加修改。