В результате проверки условия при использовании инструкции if
получается величина,
которая может принимать два значения: истина или ложь. В математике такие величины называются
логическими или булевыми (по имени английского математика Джорджа Буля).
Пусть x и y — две логические величины, которые могут принимать
значения истина или ложь. Определим следующие логические операции:
Логическое И: результатом этой операции будет истина тогда, и только тогда,
когда обе величины x и y истинны. В математике эта операция
называется конъюнкцией и обозначается x&y. В языке Питон
оператор "логическое И" обозначается словом and
.
Логическое ИЛИ: результатом этой операции будет истина тогда, и только тогда,
когда хотя бы одна из величин x или y истинна. В математике
эта операция называется дизъюнкцией и обозначается x v y.
В языке Питон оператор "логическое ИЛИ" обозначается словом or
.
Логическое НЕ (отрицание): унарная операция, значение которой есть истина, если
значение аргумента — ложь и есть ложь, если аргумент — истинен.
В математике отрицание обозначается чертой поверх своего аргумента.
В Питоне оператор "логическое НЕ" обозначается словом not
.
Логическое И и ИЛИ — бинарные операции, у них два аргумента. В Питоне их
следует записывать, как арифметические операторы +
, *
и т.п.:
аргументы следует писать до и после ключевого слова операции (or
или and
).
Логическое НЕ — унарный оператор, его единственный аргумент следует, как и в
случае с унарной операцией отрицания, писать после слова not
.
Чтобы избежать путаницы, рекомендуется операнды заключать в скобки.
Пример. Рассмотрим точку с координатами (x
,y
) (для
дальнейшей строгости будем считать, что точка не лежит на осях координат).
Тогда выражение x>0
истинно для точек правой полуплоскости,
выражение y>0
истинно для точек верхней полуплоскости.
Выражение (x>0) and (y>0)
истинно для точек, лежащих в правой
полуплоскости и в верхней полуплоскости, то есть в первой четверти,
выражение (x>0) or (y>0)
истинно для точек, лежащий в правой
полуплоскости или в верней полуплоскости, то есть в первой, второй
или четвертой четвертях. Условие not (x>0)
верно для точек левой полуплоскости,
условие not (y>0)
для точек нижней полуплоскости, условие
(x>0) and (not(y>0))
верно для точек четвертой четверти.
Логические операторы тесно связаны с операциями над множествами. А именно, если даны два множества A и B, то выражение "x принадлежит объединению А и B"
эквивалентно " x принадлежит А" ИЛИ "x принадлежит B"; выражение "x принадлежит пересечению А и B"
эквивалентно " x принадлежит А" И "x принадлежит B"; выражение "x принадлежит дополнению A"
эквивалентно отрицанию "x принадлежит А". Даже обозначения логических операций и операций над множествами похожи.