52 lines
1.5 KiB
Markdown
52 lines
1.5 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 Docs - 布尔运算](https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not)
|
|||
|
|
|||
|
这些是布尔运算,按升序排序:
|
|||
|
|
|||
|
操作|结果|笔记
|
|||
|
\--------- | ------------------------------------ | -----
|
|||
|
x或y |如果x为假,则为y,否则为x | (1)
|
|||
|
x和y |如果x为假,则为x,否则为y | (2)
|
|||
|
不是x |如果x为假,则为True,否则为False | (3)
|
|||
|
|
|||
|
**笔记:**
|
|||
|
|
|||
|
1. 这是一个短路运算符,因此只有在第一个参数为False时才会计算第二个参数。
|
|||
|
2. 这是一个短路操作符,因此只有在第一个参数为True时才会计算第二个参数。
|
|||
|
3. 没有比非布尔运算符更低的优先级,因此不是a == b被解释为不是(a == b),而a ==不是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
|
|||
|
|
|||
|
```
|