簡體   English   中英

UnboundLocalError:分配前已引用局部變量“ truebomb”

[英]UnboundLocalError: local variable 'truebomb' referenced before assignment

我有一些代碼在哪里我得到錯誤:

UnboundLocalError: local variable 'truebomb' referenced before assignment. 

在我的代碼中,我有一個變量b 每次代碼運行時,我將1加到b b最初是1,根據我的代碼它將滿足方程式。

import random

b=1

game=True

while game:

    if b==1:
        bomb=random.randint(1,9)

        if bomb== '8':
            truebomb=True

        if truebomb:
            game=False

    b=b+1

quit()

如果bomb != 8 ,則永遠不會設置truebomb

無論bomb的價值如何,您仍然要求您的代碼評估truebomb的真相。 truthbomb不存在時,您會得到一個錯誤。

如果由於某些原因您不想在bomb != 8時設置truebomb ,則可以捕獲異常,如下所示:

try:
    if truebomb:
        game = False

except UnboundLocalError:
    print('truebomb not set, continuing...')
    continue

否則,9.0建議在開始時設置truebomb = False是最佳方法。

請注意,您實際上根本不需要truebomb
您只需將bomb == 8設置為game = False
另外, bomb是整數,而不是字符串,因此與8而不是'8'進行比較:

bomb = random.randint(1,9)

if bomb == 8:
    game = False

truebomb沒有設置為任何值,因為random.randint(1,9)不等於8,並且只有當bomb為8時truebomb才設置為值。如何解決此問題:在開始游戲循環之前,將truebomb設置為False

您的bomb變量也有同樣的問題。 在循環的第二次迭代中,將發生錯誤,因為b!=1 變量需要在使用前分配給值!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM