Форум сайта python.su
Подскажите пожалуйста, почему ругается и как поправить?
выдаёт:
выстрел по х: 2 выстрел по y: 2 мимо выстрел по х: 1 выстрел по y: 1 убил [1, 10, 10] [10, 10, 1] Traceback (most recent call last): if (shotx==onex[i]) and (shoty==oney[i]): IndexError: list index out of range
onex=[1,1,10,10] oney=[10,1,10,1] t='true' while t: pr=len(onex) shotx=int(input('выстрел по х: ')) shoty=int(input('выстрел по y: ')) for i in range(len(onex)): if (shotx==onex[i]) and (shoty==oney[i]): print('убил') onex.remove(i) oney.remove(i) ##print(onex, oney) if pr==len(onex): print('мимо')
Отредактировано Aturo (Ноя. 8, 2017 09:12:18)
Офлайн
>>> def f(): ... onex = [1, 1, 10, 10] ... oney = [10, 1, 10, 1] ... t = True ... while t: ... pr = len(onex) ... shotx = int(input('выстрел по х: ')) ... shoty = int(input('выстрел по y: ')) ... for i in range(len(onex)): ... if shotx == onex[i] and shoty == oney[i]: ... onex.remove(i) ... oney.remove(i) ... print('убил') ... break ... if pr == len(onex): ... print('мимо') ... >>> f() выстрел по х: 2 выстрел по y: 2 мимо выстрел по х: 1 выстрел по y: 1 убил выстрел по х: 1 выстрел по y: 1 мимо ... >>>
Офлайн
ships = [ [0, 0, 0, 1, 0, 1], [0, 1, 1, 1, 0, 0], [0, 1, 1, 0, 0, 0], [1, 1, 1, 1, 0, 1], [0, 1, 0, 1, 0, 0], [1, 0, 0, 0, 0, 1], ] while True: shotx = int(input('выстрел по х: ')) shoty = int(input('выстрел по y: ')) if ships[shotx][shoty] == 0: print("Мимо") elif ships[shotx][shoty] == 1: print("Убил") else: print("Уже стрелял") ships[shotx][shoty] = 3
Офлайн
py.user.nextПри повторном попадании выдаёт:
ValueError: list.remove(x): x not in list
onex[i]=0 oney[i]=0
FishHookШикарно, не знал что так можно. Это сильно упрощает мне задачу. Спасибо ^_^
Отредактировано Aturo (Ноя. 8, 2017 10:29:45)
Офлайн