Логические операторы сравнения в Python

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

Содержание

Введение в логические операторы Python

Иногда вам может потребоваться проверить несколько условий одновременно. Для этого используются логические операторы.

В Python есть три логических оператора:

  • and
  • or
  • not

Оператор and

Оператор and проверяет, являются ли два условия истинными одновременно:

a and b

Он возвращает True, если оба условия истинны, и False, если условие a или b имеет значение False.

В следующем примере оператор and используется для объединения двух условий, сравнивающих цену с числами:

>>> price = 9.99
>>> price > 9 and price < 10
True

Результат — True, поскольку цена больше 9 и меньше 10.

Следующий пример возвращает значение False, поскольку цена не превышает 10:

>>> price > 10 and price < 20
False

В этом примере цена условия > 10 возвращает значение False, а цена второго условия < 20 возвращает значение True.

В следующей таблице показан результат действия оператора and при объединении двух условий:

a b a и b
True True True
True False False
False False False
False True False

Как видно из таблицы, условия a и b возвращают значение True только в том случае, если оба условия оцениваются как True.

Оператор or

Подобно оператору and, оператор or проверяет несколько условий. Но он возвращает True, когда одно или оба отдельных условия имеют значение True:

a or b

В следующей таблице показан результат действия оператора или при объединении двух условий:

a b a или b
True True True
True False True
False True True
False False False

Оператор or возвращает значение False только в том случае, если оба условия имеют значение False.

В следующем примере показано, как использовать оператор или:

>>> price = 9.99
>>> price > 10 or price < 20
>>> True

В этом примере цена < 20 возвращает True, поэтому все выражение возвращает True.

Следующий пример возвращает значение False, поскольку оба условия оцениваются как False:

>>> price = 9.99
>>> price > 10 or price < 5
False

Оператор not

Оператор not применяется к одному условию. И это меняет результат этого условия: True становится False, а False становится True.

not a

Если условие истинно, оператор not возвращает значение False и наоборот.

В следующей таблице показан результат работы оператора not:

a not a
True False
False True

В следующем примере используется оператор not. Поскольку цена > 10 возвращает значение False, not цена > 10 возвращает значение True:

>>> price = 9.99
>>> not price > 10
True

Вот еще один пример, в котором сочетаются операторы not и and:

>>> not(price > 5 and price < 10)
False

В этом примере Python оценивает условия в следующем порядке:

  • Во-первых,(цена > 5 и цена < 10) оценивается как True.
  • Во-вторых, not True оценивается как False.

Это приводит к важной концепции, называемой приоритетом логических операторов.

Приоритет логических операторов

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

Ниже показан приоритет операторов not, and и or:

Оператор Приоритет
not Высокий
and Средний
or Низкий

На основе этих приоритетов Python сначала группирует операнды для оператора с наивысшим приоритетом, затем группирует операнды для оператора с более низким приоритетом и так далее.

Если выражение имеет несколько логических операторов с одинаковым приоритетом, Python будет оценивать их слева направо:

a or b and c означает a or (b and c)
a and b or c and d означает (a and b) or (c and d)
a and b and c or d означает ((a and b) and c) or d
not a and b or c означает ((not a) and b) or c

 

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *