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