如何修复Python错误:“UnboundLocalError:赋值之前引用了局部变量'id1'”

2024-04-27 01:03:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用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)

但我得到了以下错误:

File "Jeux-d-avions.py", line 71, in create_ennemy ennemy_list.append(id1) UnboundLocalError: local variable 'id1' referenced before assignment

我在网上搜索,但没有解决我的问题。为什么我的代码不起作用?在


Tags: 代码ifdeftypecreateredfilllist
2条回答

你的代码没有问题,你只需要缩进你的代码和一个小的改变来分配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)

这将修复您提到的错误。在

在您的代码中,对于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)

相关问题 更多 >