guess game - index error - python
import random
def print3x3(lists):
for i, item in enumerate(lists, 1):
print(item, end=' ')
if i % 3 == 0:
print()
listx = list()
list0 = list()
for i in range(3):
for i in range(3):
listx.append('x')
for i in range(3):
for i in range(3):
r = random.randint(1, 9)
list0.append(r)
user = int(input("Enter num: "))
while True:
for i, item in enumerate(list0, 1):
if item == user:
listx[i] = user
print3x3(listx)
i want to hide random numbers behind these x
and let user guess them
but it gives error
Traceback (most recent call last):
File "main.py", line 26, in <module>
listx[i] = user
IndexError: list assignment index out of range
what can i do ?1
thanks
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Не копируйте конструкции слепо. Если в первом случае использования enumerate вам нужно, чтобы enumerate работал начиная с 1, а не с 0, чтобы правильно отрабатывал остаток от деления, то во втором случае вам этот параметр (начинать отсчёт с 1) наоборот мешает, потому что нумерация индексов в списках идёт с 0. Правильный код будет такой:
for i, item in enumerate(list0):
if item == user:
listx[i] = user