Помогите в 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)