#python #python-3.x
#python #python-3.x
Вопрос:
Я пытаюсь создать небольшую игру с 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)
Но я получаю следующую ошибку :
Файл «Jeux-d-avions.py», строка 71, в create_ennemy ennemy_list.append(id1) UnboundLocalError: локальная переменная ‘id1’, на которую ссылаются перед назначением
Я искал в Интернете, но это не решило мою проблему. Почему мой код не работает?
Комментарии:
1. Исправьте отступ, пожалуйста.
2. если
t > 4
тогдаid1
никогда не существует, поэтому вы не можете добавить ее в список.3. Я думаю, проблема в строке сразу после вашего
elif
. Вероятно, это должно читатьсяid1 = c.create_polygon(7.5, 7.5, 7.5, 75, 105, 45, fill='red')
, но неясно из-за отсутствия отступа.
Ответ №1:
В вашем коде нет присвоения id1
в случае elif
Я предполагаю, что вы имеете в виду, должно быть следующим:
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)
Ответ №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)
это исправит упомянутую вами ошибку.