Компьютерная логика
Вы заметили, что условия, которые мы использовали до сих пор, были очень простыми, если не сказать, довольно примитивными? Условия, которые мы используем в реальной жизни, намного сложнее. Давайте посмотрим на это предложение:
Если у нас будет немного свободного времени, и погода будет хорошей, мы пойдем гулять.
Мы использовали союз и , что означает, что прогулка зависит от одновременного выполнения этих двух условий. На языке логики такое соединение условий называется конъюнкцией. А теперь еще один пример:
Если ты находишься в торговом центре или если я нахожусь в торговом центре, то один из нас купит подарок для мамы.
Появление слова или означает, что покупка зависит хотя бы от одного из этих условий. В логике такое соединение называется дизъюнкцией.
Понятно, что в 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 |