- Логические операции работают с высказываниями, которые могут быть только истинными или ложными.
- И истинно, когда истинны оба высказывания, ИЛИ — когда истинно хотя бы одно, НЕ меняет значение на противоположное.
- Исключающее ИЛИ истинно, когда ровно одно из двух высказываний истинно.
- Приоритет: сначала НЕ, затем И, затем ИЛИ; сомневаетесь — ставьте скобки.
Содержание12 разделов ▾
Логические операции — действия над высказываниями, которые могут быть только истинными или ложными. И даёт истину, когда истинны оба высказывания, ИЛИ — когда истинно хотя бы одно, а НЕ меняет значение на противоположное. Статья для тех, кто знаком с нулями и единицами и хочет понять, как с ними рассуждать. Вы узнаете, что делает каждая операция, как выглядит её таблица истинности, как операции обозначают в логике и в Python и как они работают в поисковых запросах.
Определения сверены с Википедией, правила приоритета — с документацией Python, операторы поиска — со справкой Яндекса. Код проверен запуском на Python 3.13. Данные на октябрь 2026 года.
Что такое высказывание и логическое значение
В логике высказыванием называют предложение, которое может быть истинным или ложным. «Сейчас идёт дождь» — высказывание: на него можно ответить «верно» или «неверно». «Закрой окно» — не высказывание: приказ не бывает истинным или ложным.
Истину и ложь удобно записывать числами: 1 — истина, 0 — ложь. Это тот же двоичный алфавит, с которым вы встречались в статье о двоичной системе. Компьютер хранит те же значения в виде битов.
Операция НЕ (отрицание)
НЕ меняет значение на противоположное: из истины получается ложь, из лжи — истина. Это единственная из основных операций с одним операндом.
| a | НЕ a |
|---|---|
| 0 | 1 |
| 1 | 0 |
Пример из жизни: «свет горит» — истина, тогда «свет НЕ горит» — ложь.
Операция И (конъюнкция)
И истинно только тогда, когда истинны оба операнда. По описанию Википедии, результат равен 1, если все операнды равны 1, а во всех остальных случаях равен 0.
| a | b | a И b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Пример из жизни: «купить билет И иметь паспорт». Без любого из двух условий в поезд не сядешь.
Операция ИЛИ (дизъюнкция)
ИЛИ истинно, когда истинен хотя бы один операнд. Википедия отмечает, что дизъюнкция по применению максимально близка к союзу «или» в смысле «или первый, или второй, или оба сразу». В повседневной речи «или» часто значит «одно из двух, но не оба», а в логике оба сразу тоже подходят.
| a | b | a ИЛИ b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Пример из жизни: «оплатить картой ИЛИ наличными». Подходит любой способ, и даже оба сразу.
Исключающее ИЛИ
Исключающее ИЛИ (XOR) истинно, когда ровно один операнд истинен, а другой ложен. Википедия называет его также сложением по модулю 2: оно складывает биты, а перенос в старший разряд отбрасывает.
| a | b | a XOR b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
От обычного ИЛИ оно отличается последней строкой: когда истинны оба операнда, результат ложен. Пример из жизни: выключатель на двух концах коридора. Свет меняет состояние от нажатия любого из двух переключателей, и если нажаты оба, то свет остаётся как был.
Сводная таблица
| Операция | Название | Запись в логике | Запись в Python | Запись в запросах | Результат |
|---|---|---|---|---|---|
| НЕ | отрицание | ¬a | not a | -слово | меняет значение |
| И | конъюнкция | a ∧ b | a and b | слова через пробел | 1, только если оба 1 |
| ИЛИ | дизъюнкция | a ∨ b | a or b | слово1 | слово2 | 1, если хотя бы один 1 |
| Исключающее ИЛИ | XOR | a ⊕ b | a ^ b для чисел | — | 1, если значения разные |
Расчёт таблиц для сложных выражений делает инструмент «Таблица истинности». Статья объясняет смысл операций, а инструмент считает за вас.
Приоритет операций
Чтобы сократить число скобок, принят порядок. Английская Википедия формулирует: отрицание имеет более высокий приоритет, чем конъюнкция, а конъюнкция более высокий, чем дизъюнкция. Выражение a ИЛИ b И НЕ c читается как a ИЛИ (b И (НЕ c)).
Разберём по шагам при a = 1, b = 0, c = 1:
- НЕ c = НЕ 1 = 0.
- b И 0 = 0 И 0 = 0.
- a ИЛИ 0 = 1 ИЛИ 0 = 1.
Скобки меняют порядок: (a ИЛИ b) И НЕ c при тех же значениях даёт (1 ИЛИ 0) И 0 = 1 И 0 = 0.
Логические операции в Python
В Python слова and, or, not работают над логическими значениями, а символы &, |, ^ — над битами целых чисел. Документация перечисляет приоритет: not выше and, а and выше or. Запустим пример, который печатает таблицы и проверяет приоритет:
# Таблицы логических операций: 0 — ложь, 1 — истина.
print("a b | НЕ a | a И b | a ИЛИ b | a XOR b")
for a in (0, 1):
for b in (0, 1):
print(f"{a} {b} | {int(not a)} | {int(a and b)} | {int(a or b)} | {a ^ b}")
# Приоритет: not, затем and, затем or
a, b, c = True, False, True
print(a or b and not c) # a or (b and (not c))
print((a or b) and not c) # со скобками результат иной
# and/or работают над значениями, & | ^ — над битами
print(5 and 3, 5 & 3) # 3 и 1
print(6 | 3, 6 ^ 3) # 7 и 5Вывод при запуске на Python 3.13:
a b | НЕ a | a И b | a ИЛИ b | a XOR b
0 0 | 1 | 0 | 0 | 0
0 1 | 1 | 0 | 1 | 1
1 0 | 0 | 0 | 1 | 1
1 1 | 0 | 1 | 1 | 0
True
False
3 1
7 5Первые строки повторяют таблицы выше. Значения True и False показывают, что скобки изменили результат. Последние две строки показывают разницу между словами и символами: документация объясняет, что and и or возвращают не True или False, а последний вычисленный аргумент, поэтому 5 and 3 равно 3, а 5 & 3 по битам равно 1.
Логические операции в поисковых запросах
Поисковые операторы повторяют идею логических операций. В справке Яндекса описаны такие:
слово1 | слово2— документы, где есть хотя бы одно из слов (ИЛИ);-слово— исключить слово из результатов (НЕ), причём исключаемое слово должно стоять в конце запроса;+слово— слово обязательно должно быть в документе;"слова в кавычках"— точная фраза.
Пример из справки: запрос «восхождение гора -Эльбрус» вернёт документы со словами «восхождение» и «гора», в которых нет слова «Эльбрус». Набор операторов зависит от поисковой системы, и справка со временем меняется.
Условия и ограничения
- Версия
- Python 3.13, октябрь 2026 — код проверен запуском; поведение операторов Python описано по документации.
- Обозначения
- В учебниках различаются — встречаются ∧, ∨, ¬, &, |, ^, слова and, or, not; ориентируйтесь на учебник или задание.
- Приоритет
- Проверяйте по источнику — порядок операций в языках программирования проверяйте по документации языка.
- Исключающее ИЛИ
- В Python ^ над битами — для логических значений
TrueиFalseоператор^тоже работает, но чаще его используют над числами. - Поиск
- Операторы зависят от системы — справка Яндекса описывает его операторы, у других поисковиков набор иной.
Частые ошибки
- Читают «или» как «либо одно, либо другое». В логике ИЛИ истинно и когда истинны оба.
- Путают И и ИЛИ в условиях: «не курить и не пить» совсем не то же, что «не (курить и пить)».
- Забывают про приоритет и пишут выражение без скобок.
- Путают
andи&в Python: первое работает над значениями, второе над битами. - Ждут от исключающего ИЛИ результата 1, когда оба операнда равны 1.
- Ставят оператор минус в середине поискового запроса: в справке Яндекса исключаемое слово должно стоять в конце.
Короткий вывод
НЕ меняет значение, И требует истинности всех операндов, ИЛИ достаточно одного, исключающее ИЛИ требует ровно одного. Приоритет — НЕ, затем И, затем ИЛИ, а скобки задают порядок явно. Эти же идеи работают в Python и в поисковых запросах. Для сложных выражений используйте таблицу истинности.




