2017-04-18 157 views
0

錯誤,我得到的是:爲什麼我得到一個unboundLocalError?

UnboundLocalError: local variable referenced before assignment?

代碼:

def menu_option(index, count): 
     import random 
     random_number1 = random.randrange(1,31) 
     random_number2 = random.randrange(1,31) 
     if index == 1: 
      problem = random_number1 + random_number2 
     elif index == 2: 
      problem = random_number1 - random_number2 
     elif index == 3: 
      problem = random_number1 * random_number2 
     elif index == 4: 
      problem = random_number1 // random_number2 
     elif index == 5: 
      problem = random_number1 % random_number2 
     user_solution = get_user_solution(problem) 
     return check_solution(user_solution, solution, count) 
+0

請縮進代碼,它使我們更容易回答。 – JkShaw

+0

哪一行發生錯誤? –

+0

錯誤信息有點大......它包括髮生錯誤的行。你能發佈整個錯誤信息嗎? – tdelaney

回答

0

if/elif/elif ...的鏈條假設這些條件都不符合?然後problem未分配。但是,您嘗試在user_solution = get_user_solution(problem)中使用它。看起來像problem是問題所在。解決方案取決於您的設計在這種情況下應該發生的事情。是否有應該使用的默認值?提高你自己的例外?返回錯誤代碼?你必須做出決定。

0

在最後一行return check_solution(user_solution, solution, count)solution變量沒有定義

0

就像人士Himanshu說,這是因爲你使用的變量solution到你沒有做任何任務。所以在這種情況下,python會在函數內部尋找它,如果沒有,它會在全局尋找它。如果它在使用之前沒有找到任何賦值,它將引發UnboundLocalError,變量problem被限制爲如果阻塞,所以我認爲它不能在外部訪問。因此,在嵌套if塊之前將problem指定爲具有某個值,並且還要檢查solution有關應該在傳遞函數之前應分配的變量的變量。

相關問題