Логические операторы сравнения в Python
В этом уроке вы узнаете о логических операторах сравнения в Python и о том, как их использовать для объединения нескольких условий.
- Введение в логические операторы Python
- Оператор and
- Оператор or
- Оператор not
- Приоритет логических операторов
Введение в логические операторы 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 |