我在python 3.5中编写了这段代码
temp=0
def add1(x):
f=12
if temp < x:
for i in range(20):
temp=temp + f
print(temp)
add1(21)
Traceback (most recent call last): File "<pyshell#29>", line 1, in
<module>
add1(12) File "<pyshell#28>", line 3, in add1
if temp < x: UnboundLocalError: local variable 'temp' referenced before assignment
答案 0 :(得分:1)
好像你的意思是temp
是add1
中的局部变量:
def add1(x):
temp=0 # Here!
f=12
if temp < x:
for i in range(20):
temp=temp + f
print(temp)
答案 1 :(得分:0)
您应该将temp
变量作为参数传递给函数,以便它可以正确使用并修改而不会产生任何错误。此外,最好为全局变量和函数参数使用不同的名称。您的代码应如下所示:
tempglobal=0
def add1(x, tempparam):
f=12
if tempparam< x:
for i in range(20):
tempparam=tempparam+ f
print(tempparam)
add1(21, tempglobal)