Module (44%)
Section (17%)

Компьютерная логика

Вы заметили, что условия, которые мы использовали до сих пор, были очень простыми, если не сказать, довольно примитивными? Условия, которые мы используем в реальной жизни, намного сложнее. Давайте посмотрим на это предложение:

Если у нас будет немного свободного времени, и погода будет хорошей, мы пойдем гулять.


Мы использовали союз и , что означает, что прогулка зависит от одновременного выполнения этих двух условий. На языке логики такое соединение условий называется конъюнкцией. А теперь еще один пример:

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


Появление слова или означает, что покупка зависит хотя бы от одного из этих условий. В логике такое соединение называется дизъюнкцией.

Понятно, что в Python должны быть операторы для построения конъюнкций и дизъюнкций. Без них выразительная сила языка была бы существенно ослаблена. Они называются логическими операторами.

and

Одним из операторов логического соединения в Python является слово and. Это бинарный оператор с более низким приоритетом, чем тот, который имеют операторы сравнения. Это позволяет нам кодировать сложные условия без использования круглых скобок, подобные этому:

counter > 0 and value == 100

Результат, получаемый при использовании оператора and, может быть определен на основе таблицы истинности.

Если мы рассмотрим конъюнкцию A and B, набор возможных значений аргументов и соответствующих значений конъюнкции выглядит следующим образом:


Аргумент A Аргумент B A and B
False False False
False True False
True False False
True True True

or

Оператор дизъюнкции - это слово or. Это бинарный оператор с более низким приоритетом, чем у and (точно так же, как + по сравнению с *). Его таблица истинности выглядит следующим образом:


Аргумент A Аргумент B A or B
False False False
False True True
True False True
True True True

not

Кроме того, есть еще один оператор, который можно применять для построения условий. Это унарный оператор, выполняющий логическое отрицание. Его действие простое: он превращает истину в ложь, а ложь - в истину.

Этот оператор записывается как слово not, и его приоритет очень высок: такой же, как у унарных + и -. Его таблица истинности проста:


Аргумент not Аргумент
False True
True False