@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...
  • Вопрос задан
  • 1863 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Вы вместо последовательности передаёте в функцию целое число, либо последовательность меньшей размерности, чем ожидается.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы