52 lines
2.0 KiB
Markdown
52 lines
2.0 KiB
Markdown
|
---
|
|||
|
title: Python Boolean Operations
|
|||
|
localeTitle: Булевы операции на Python
|
|||
|
---
|
|||
|
[`and`](https://docs.python.org/3/reference/expressions.html#and) , [`or`](https://docs.python.org/3/reference/expressions.html#or) , [`not`](https://docs.python.org/3/reference/expressions.html#not)
|
|||
|
|
|||
|
[Документы Python - логические операции](https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not)
|
|||
|
|
|||
|
Это булевские операции, упорядоченные по приоритету приоритета:
|
|||
|
|
|||
|
Операция | Результат | Заметки
|
|||
|
\--------- | ------------------------------------ | -----
|
|||
|
x или y | если x ложно, то y, else x | (1)
|
|||
|
x и y | если x ложно, то x, else y | (2)
|
|||
|
не x | если x является ложным, то True, else False | (3)
|
|||
|
|
|||
|
**Заметки:**
|
|||
|
|
|||
|
1. Это оператор короткого замыкания, поэтому он оценивает только второй аргумент, если первый - False.
|
|||
|
2. Это оператор короткого замыкания, поэтому он вычисляет только второй аргумент, если первый имеет значение True.
|
|||
|
3. не имеет более низкого приоритета, чем небулевые операторы, поэтому не == b интерпретируется как нет (a == b), а a == not b является синтаксической ошибкой.
|
|||
|
|
|||
|
## Примеры:
|
|||
|
|
|||
|
### `not` :
|
|||
|
```
|
|||
|
>>> not True
|
|||
|
False
|
|||
|
>>> not False
|
|||
|
True
|
|||
|
```
|
|||
|
|
|||
|
### `and` :
|
|||
|
```
|
|||
|
>>> True and False # Short-circuited at first argument.
|
|||
|
False
|
|||
|
>>> False and True # Second argument is evaluated.
|
|||
|
False
|
|||
|
>>> True and True # Second argument is evaluated.
|
|||
|
True
|
|||
|
```
|
|||
|
|
|||
|
### `or` :
|
|||
|
```
|
|||
|
>>> True or False # Short-circuited at first argument.
|
|||
|
True
|
|||
|
>>> False or True # Second argument is evaluated.
|
|||
|
True
|
|||
|
>>> False or False # Second argument is evaluated.
|
|||
|
False
|
|||
|
|
|||
|
```
|