簡體   English   中英

如何解決Python錯誤:“ UnboundLocalError:分配前已引用本地變量'id1'”

[英]How to fix Python error : “UnboundLocalError: local variable 'id1' referenced before assignment”

我正在嘗試用python創建一個小游戲。 我已經編寫了此代碼:

def create_ennemy() :
    x = 1200
    y = randint(0, 650)
    t = randint(1, 5)
    if t <= 4 :
        id1 = c.create_polygon(7.5, 7.5, 7.5, 37.5, 52.5, 22.5, fill='red')
        r = 22.5
    elif t == 5 :
        c.create_polygon(7.5, 7.5, 7.5, 75, 105, 45, fill='red')
        r = 45
        ennemy_list.append(id1)
        ennemy_type.append(t)

但是我收到以下錯誤:

create_ennemy ennemy_list.append(id1)中的文件“ Jeux-d-avions.py”,行71,UnboundLocalError:分配前已引用本地變量“ id1”

我在互聯網上搜索,但是並不能解決我的問題。 為什么我的代碼無法正常工作?

在您的代碼中,如果是elif ,則不會分配id1

我想你的意思應該如下:

 def create_ennemy() :
    x = 1200
    y = randint(0, 650)
    t = randint(1, 5)
    if t <= 4 :
        id1 = c.create_polygon(7.5, 7.5, 7.5, 37.5, 52.5, 22.5, fill='red')
        r = 22.5
    elif t == 5 :
        id1 = c.create_polygon(7.5, 7.5, 7.5, 75, 105, 45, fill='red')
        r = 45
    ennemy_list.append(id1)
    ennemy_type.append(t)

您的代碼沒有問題,您只需要縮進您的代碼,並進行較小的更改即可分配id1

def create_ennemy() :
    x = 1200
    y = randint(0, 650)
    t = randint(1, 5)
    if t <= 4 :
        id1 = c.create_polygon(7.5, 7.5, 7.5, 37.5, 52.5, 22.5, fill='red')
        r = 22.5
    elif t == 5 :
        id1 = c.create_polygon(7.5, 7.5, 7.5, 75, 105, 45, fill='red')
        r = 45

    ennemy_list.append(id1)
    ennemy_type.append(t)

這將解決您提到的錯誤。

暫無
暫無

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

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