Перейти к содержанию

Логические основы

Справочник для самопроверки по булевой логике: значения, операции, приоритет, законы и таблицы истинности.

1. Логические основы алгоритмизации (роль булевой логики в условиях и циклах, логические значения)

Любой алгоритм управляет порядком действий через логические условия — выражения, результат которых либо истина (True), либо ложь (False). На этих двух логических значениях (тип bool в Python) держатся ветвления (if/elif/else) и циклы (while выполняется, пока условие истинно). По сути булева логика — это «да/нет»-арифметика, по которой программа принимает решения. В Python ложными также считаются «пустые» значения: 0, 0.0, "", [], {}, None, а почти всё остальное — истинным.

2. Логические операции (И/AND/∧, ИЛИ/OR/∨, НЕ/NOT/¬, исключающее ИЛИ/XOR)

И (AND, ∧) истинно, только когда истинны оба операнда; ИЛИ (OR, ∨) истинно, когда истинен хотя бы один; НЕ (NOT, ¬) инвертирует значение. Исключающее ИЛИ (XOR) истинно, когда операнды различны (ровно один истинен). В Python это ключевые слова and, or, not; XOR отдельного ключевого слова не имеет — для bool его роль выполняет != или побитовый ^.

A B A and B A or B not A A xor B
F F F F T F
F T F T T T
T F F T F T
T T T T F F

3. Приоритет логических операций (NOT → AND → OR; роль скобок; короткое замыкание в Python)

Операции выполняются в порядке убывания приоритета: сначала not, затем and, затем or. Поэтому a or b and c читается как a or (b and c), а скобки позволяют явно задать нужный порядок и улучшают читаемость. В Python работает короткое замыкание (short-circuit): and не вычисляет правый операнд, если левый ложен, а or — если левый истинен. Благодаря этому выражения вроде x is not None and x.value > 0 безопасны и возвращают значение последнего вычисленного операнда, а не обязательно bool.

4. Законы логических операций (де Моргана, дистрибутивности, поглощения, коммутативности, ассоциативности)

Эти законы позволяют упрощать и эквивалентно переписывать условия:

  • Коммутативность: A ∧ B = B ∧ A, A ∨ B = B ∨ A.
  • Ассоциативность: (A ∧ B) ∧ C = A ∧ (B ∧ C), (A ∨ B) ∨ C = A ∨ (B ∨ C).
  • Дистрибутивность: A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C), A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C).
  • Поглощение: A ∨ (A ∧ B) = A, A ∧ (A ∨ B) = A.
  • Законы де Моргана: ¬(A ∧ B) = ¬A ∨ ¬B, ¬(A ∨ B) = ¬A ∧ ¬B — отрицание «раскрывает скобки», меняя and на or и наоборот.

Особенно полезны законы де Моргана: они помогают избавиться от вложенного not и сделать условия читаемее, например заменить not (a and b) на not a or not b.

5. Таблицы истинности (что это, как строить; таблицы для AND, OR, NOT, XOR)

Таблица истинности — это перечень всех возможных комбинаций входных значений и соответствующего результата логического выражения. Для n переменных в ней 2ⁿ строк; строки удобно заполнять, перебирая значения как двоичные числа (FF, FT, TF, TT). Таблицы доказывают эквивалентность выражений и помогают проверять правильность условий.

A B AND OR XOR
F F F F F
F T F T T
T F F T T
T T T T F
A NOT A
F T
T F

См. также