有人可以重新编写此代码而不会出现任何错误

时间:2017-05-14 07:15:35

标签: python-3.x

我在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

2 个答案:

答案 0 :(得分:1)

好像你的意思是tempadd1中的局部变量:

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)