
Вот какой код у меня получился без диагоналей:
table = [["." for i in range(8)] for j in range(8)]
x = input(("Введите x: "))
y = input(("Введите y: "))
for ab in table:
table[int(x)][int(y)] = "I"
print(*ab)
y, x = 8 - int(input()), int(input()) - 1
for i in range(8):
print(*['.#I'[(abs(x - j) == abs(y - i)) + (abs(x - j) + abs(y - i) == 0)] for j in range(8)])
В шахматах сначала вертикальная координата, а потом горизонтальная. Причём вертикальная отсчитывается снизу вверх. # ШАГ 1. инициализация переменных
# размер шахматной доски
N = 8
# шахматная доска
table = [["." for x in range(N)] for y in range(N)]
# ШАГ 2. ввод пользовательских данных
x0 = int( input(f"Введите координату x слона [1..{N}]: ") ) - 1
y0 = int( input(f"Введите координату y слона [1..{N}]: ") ) - 1
# ШАГ 3. расчет
table[x0][y0] = "I"
for x in range(N) :
for y in range(N) :
if x != x0 and abs(x - x0) == abs(y - y0) :
table[x][y] = "#"
# ШАГ 4. вывод результата
for y in range(N) :
for x in range(N) :
print(table[x][y], end=" ")
print()
x, y = ord((xy := input())[0].lower()) - 97, 8 - int(xy[1])
print(*[' '.join(['I' if x == i and y == j else '#' if abs(x - i) == abs(y - j) else '.' for i in range(8)]) for j in range(8)], sep='\n')