2017-05-14 64 views
0

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

回答

1

好像你的意思temp在裏面add1一個局部變量:

def add1(x): 
    temp=0 # Here! 
    f=12 
    if temp < x: 
     for i in range(20): 
      temp=temp + f 
      print(temp) 
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) 
相關問題