Этот вопрос закрыт для ответов, так как повторяет вопрос Почему так происходит?
@Pro100usr

UnboundLocalError при создании переменной в самом конце кода?

Здравствуйте, помогите разобраться с вопросом, обучаюсь питону и делаю ДЗ игру с морским боем. Иногда нужно несколько прогонов цикла, чтобы сделать разметку игрового поля из-за переполнения, потом доделать код и всегда нужно будет 2 прохода: Вручную и случайно. Когда добавляю в самый конец новые переменные, чтобы потом их использовать для нового цикла заполнения. Они же еще находятся и в глобальной. "field = [ ["О"] * 6 for _ in range(6) ]" и "ships = ["■■■", "■■","■■", "■", "■", "■", "■"] " в 224 и 225 строки, я ловлю ошибку(можно запустить без этих 2 строк, оно будет срабатывать в процентах 70%)
UnboundLocalError                         Traceback (most recent call last)
Input In [1], in <cell line: 230>()
    227                         break
    229 t = Ships()
--> 230 a = t.ship("pc")
    231 #b = t.ship("pc")
    232 #b = t.ship("hum")
    233 #print(a,b)
    234 t.fight(a,a)

Input In [1], in Ships.ship(self, player)
    174     print("Выход за игровое поле по X")
    175     break
--> 176 if field[y1] [x1+n] != "О":
    177     if player == "hum":
    178         print("Выберите свободное место, оно занято")

UnboundLocalError: local variable 'field' referenced before assignment

Я думаю тут должно быть типа такого, но видимо нет, т.к. в этом случае нет ошибки, а у меня появляется, помогите понять суть в целом. Спасибо
x = 2
def bo():
    x = 3
    print(x)
    def bo2():
        x = 4
        print(x)
        
    bo2()
bo()
print(x)

Вот то что у меня получилось на данный момент. Тут ограничения в символах, на гитхабе работа: тык
  • Вопрос задан
  • 84 просмотра
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы