Ты хочешь указывать ячейку как в морском бое, а1-в3?
Тогда работай отдельно по строкам и столбцам, так будет проще.
field = [
[' ', ' ', ' '],
[' ', ' ', ' '],
[' ', ' ', ' '],
]
#обращение к ячейке будет таким: field[1][1]
columns = ['1', '2', '3'] #обозначения столбцов
rows = ['a', 'b', 'c'] #обозначения строк
def cell2index(cell):
# превращаем строку вида b1 в индексы в списке
row = rows.index(cell[0].lower()) #если номера строки нет, вылетит исключение ValueError
col = columns.index(cell[1]) #если номера столбца нет, вылетит исключение ValueError
return row, col #возвращаем кортеж - пару значений
# пример работы - ход крестиков
while True: #повторяем, пока пользователь не введет правильный номер
cell = input('Введите ячейку для хода: ')
try:
r, c = cell2index(cell) #если номер неверный, тут вылетит исключение ValueError
if field[r][c] != ' ': #ячейка уже занята?
print('Ячейка уже занята!')
else:
break #если исключения не было, выходим из цикла
except ValueError:
print('Номер ячейки неправильный')
#сюда попадём только если номер ячейки правильный и она свободна
field[r][c] = 'x'