Помогите в Python

в моей программе надо представить что есть шахматная доска 8x8 Тоесть A1 клетка - черная, A2 белая; B1 - белая, B2 - чёрная и т.д. до H8 В программе мы вводим клетку например: Входные данные №1: A1 Вывод №1: BLACK Входные данные №2: B1 Вывод №1: WHITE Помогите на основе моего кода:

a = input() # ввод данных 
a1 = str(a[0]) # вырезаем букву
a2 = int(a[1]) # вырезаем число
text = "BLACK"
if a1 == 'A' or 'C' or 'E' or 'G':
    if a2 % 2 == 0: # проверка на целое число
        text = "WHITE"
else:
    if a1 == 'B' or 'D' or 'F' or 'H':
        if a2 % 2 == 1: # проверка на не целое число
            text = "WHITE"
print(text)

Ответы (3 шт):

Автор решения: Danis
a = input() # ввод данных 
a1 = str(a[0]) # вырезаем букву
a2 = int(a[1]) # вырезаем число
text = "BLACK"
if a1 in ['A', 'C', 'E', 'G']:
    if a2 % 2 == 1: # проверка на целое число
        text = "WHITE"
else:
    if a2 % 2 == 0: # проверка на не целое число
        text = "WHITE"
print(text)
if ("ABCDEFG".index(a[0])+int(a[1]))%2:
    print("BLACK")
else:
    print("WHITE")
→ Ссылка
Автор решения: Stanislav Volodarskiy

Ваша главная ошибка тут:

if a1 == 'A' or 'C' or 'E' or 'G':

Расставим скобки:

if (((a1 == 'A') or 'C') or 'E') or 'G':

Что такое or 'C'? К сожалению, Питон не выдаёт предупреждение когда вы строку ставите на место где должно быть булево выражение. Любая непустая строка приводится к True:

if (((a1 == 'A') or True) or True) or True:

И всё это выражение можно заменить на:

if True:

Простейшая поправка такая:

if a1 == 'A' or a1 == 'C' or a1 == 'E' or a1 == 'G':

Есть и более продвинутые техники. Но для начала годится и так.

→ Ссылка
Автор решения: Akina
a = input() 
if (ord(a[0]) + int(a[1])) % 2 == 0:
    text = "WHITE"
else:
    text = "BLACK"
print(text)
→ Ссылка