Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
2 мин
10044

Логический XOR в Python

Одной из распространенных задач в программировании является использование логического оператора XOR. Оператор XOR, или «исключающее или», работает

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

Одной из распространенных задач в программировании является использование логического оператора XOR. Оператор XOR, или «исключающее или», работает так: он возвращает истину, если ровно один из его операндов истинен, и ложь во всех остальных случаях.

У этого оператора много применений, однако в Python прямой поддержки для него нет. Вместо этого, Python предоставляет оператор ^ для выполнения операции XOR на битовом уровне, что ведет к неожиданным результатам при попытке его использовать как логический оператор.

Например, можно попытаться применить этот оператор к двум строкам, ожидая, что он будет работать как логический XOR. Однако Python не поддерживает эту операцию для строк.

str1 = 'hello'
str2 = ''
res = str1 ^ str2  # Ошибка TypeError: unsupported operand type(s) for ^: 'str' and 'str'

Вместо этого, можно реализовать логический XOR через другие логические операторы, такие как and и or.

def logical_xor(str1, str2):
    return bool(str1) != bool(str2)

str1 = 'hello'
str2 = ''
print(logical_xor(str1, str2))  # Выводит True

Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.

В этом примере функция logical_xor преобразует оба своих аргумента к булевому типу с помощью функции bool, а затем сравнивает их с помощью оператора !=. Это ведет к ожидаемому поведению оператора XOR: функция возвращает истину, если ровно один из аргументов истинен, и ложь в противном случае.

Эта функция может быть использована для проверки, содержит ли только одна из двух строк значение, как показано в примере выше.

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

Добавить комментарий