Задать вопрос
@Pro100usr

Как поправить TypeError: 'int' object is not subscriptable, который появляется при принте элемента списка в полном цикле?

Здравствуйте, подскажите как пофиксить или куда копать проблему. При запуске метода он проходит без проблем (при раскоменчивании
#iq_x = Ships() #???????
#xxx = iq_x.find_x( "v",3, [3,3]) #???????

и закоменчивании
g = Ships()                       #!!!
g.fight(a, b)

Если запускаю полный цикл, то чтобы поймать ошибку надо стрелять по пустым клеткам, а противник должен попасть 1 раз и тогда появляется такая ошибка
TypeError                                 Traceback (most recent call last)
Input In [1], in <cell line: 553>()
    549 # b = t.ship("pc")
    550 # a = t.ship("hum") #Генерация ручная Игрока 1
    551 # print(a,b)
    552 g = Ships()                       #!!!
--> 553 g.fight(a, b)

Input In [1], in Ships.fight(self, field_1, field_2)
    255 #print("Пальба!")
    256 if self.list_aims == "go":
    257     #Тест в попавший 3палубник
--> 258     self.find_x(iq[1][0][0][0], int(iq[1][0][0][1]), gun ) #список для стрельбы
    260     print("эт self.possible =", self.possible)
    261     gun = gun.pop(0) # =self.possible[0]

Input In [1], in Ships.find_x(self, v_h, hp, gun)
    111 elif v_h == "v":
    112     for i in range(1,hp):
--> 113         print(gun[0], type(gun[0]), type(i)  )
    114         if infield(gun[0]):
    115             gun[0] += i

TypeError: 'int' object is not subscriptable

Выделяется цветом gun[0], там число 1. Сам список из двух чисел .
Чтобы запустить метод надо закоментить обратно тому что сверху

Сам код сюда не влез
https://github.com/Hello-Dminty/seabatle/blob/main...
  • Вопрос задан
  • 3188 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Вы вместо последовательности передаёте в функцию целое число, либо последовательность меньшей размерности, чем ожидается.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽