Следующая: , Предыдущая: if, Вверх: Top


6 Логические операторы

В результате проверки условия при использовании инструкции 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 принадлежит А". Даже обозначения логических операций и операций над множествами похожи.

Упражнения

  1. Докажите законы Де Моргана: для любых логических величин x и y верны тождества not (x and y) = not x or not y; not (x or y) = not x and not y.
  2. Выразите операцию "ИЛИ" через операции "И" и "НЕ". Выразите операцию "И" через операции "ИЛИ" и "НЕ".
  3. Исключающее ИЛИ двух величин x и y есть истина тогда, и только тогда, когда ровно одна (но не обе) из величин x и y истинны. Выразите операцию "Исключающее ИЛИ" через "И", "ИЛИ", "НЕ". Какой операции над множествами соответствует операция "Исключающее ИЛИ"?
  4. Ниже приведены 15 множеств на координатной плоскости. Для каждого из них запишите условие, при котором точка с координатами (x,y) будет принадлежать данному множеству.
  5. По данным числам x, y, z определите, существует ли треугольник с такими сторонами и определите его тип (остроугольный, прямоугольный, тупоугольный).
  6. По данному числу n определите месяц и число в месяце дня с номером n в году.
    boolop.png