[英]UnboundLocalError: local variable 'cur' referenced before assignment
[英]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.