2017-05-14 4 views
0

ich diesen Code in Python 3,5Kann jemand diesen Code ohne Fehler neu schreiben

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 

Antwort

1

Scheint, wie Sie eine lokale Variable in add1 sein soll temp schrieb:

def add1(x): 
    temp=0 # Here! 
    f=12 
    if temp < x: 
     for i in range(20): 
      temp=temp + f 
      print(temp) 
0

Sie sollten passieren Die temp Variable als ein Argument in Ihrer Funktion, so dass es ordnungsgemäß verwendet und geändert werden kann, ohne irgendwelche Fehler zu erzeugen. Es ist auch eine gute Praxis, verschiedene Namen für globale Variablen und Funktionsparameter zu verwenden. Ihr Code sollte folgendermaßen aussehen:

tempglobal=0 

def add1(x, tempparam): 
    f=12 
    if tempparam< x: 
     for i in range(20): 
      tempparam=tempparam+ f 
      print(tempparam) 

add1(21, tempglobal) 
Verwandte Themen