2014-04-17 49 views
0

該程序設計用於輸入一個數字並生成所有主要因素。 我有這個工作沒有使用任何功能,但現在我試圖實現它們以獲得更多的功能在我的程序。UnboundLocalError:分配前引用的局部變量'divide'

divide = 2 
factors = [] 

def nextNumber(): 
    userInput = input("enter a number to generate factors:\n") # 
    number = int(userInput) 

    half = (number/2) 
    halfFixed = int(half) 

    for x in range (0, halfFixed): # make second arg half of user number 
     result = number % divide 

     if result == 0: 
      factors.append(divide) 

     divide +=1 

nextNumber() 
print (factors) 

當我嘗試運行它,輸入指令被讀取,我可以輸入一個號碼,但只要我做我的錯誤,「UnboundLocalError:局部變量‘鴻溝’分配之前引用的」 任何非常感謝。

+0

看一些右邊的問題。 – devnull

回答

0

你在你的功能分配給divide,使其成爲一個局部變量:

divide +=1 

任何其他用途的divide首先分配它之前的值便會提高UnboundLocal例外。

如果你的意思是這是一個全球性的,告訴的Python所以與global關鍵字:

def nextNumber(): 
    global divide 

    userInput = input("enter a number to generate factors:\n") # 
    number = int(userInput) 

    half = (number/2) 
    halfFixed = int(half) 

    for x in range (0, halfFixed): # make second arg half of user number 
     result = number % divide 

     if result == 0: 
      factors.append(divide) 

     divide +=1 
+0

這就是它的工作原理,非常感謝和抱歉,如果這是一個重複的問題,我有點新的這個網站。 –

相關問題