>>> from env_helper import info; info()
页面更新时间: 2023-04-15 21:18:43
运行环境:
    Linux发行版本: Debian GNU/Linux 12 (bookworm)
    操作系统内核: Linux-6.1.0-7-amd64-x86_64-with-glibc2.36
    Python版本: 3.11.2

2.4. 布尔操作符

布尔操作符一共有3个( andornot),用于比较布尔值。 像比较操作符一样,它们将这些表达式求值为一个布尔值。

2.4.1. 二元布尔操作符

andor 操作符总是接受两个布尔值(或表达式),所以它们被认为是 “二元” 操作符。 如果两个布尔值都为 Trueand 操作符就将表达式求值为 True ,否则求值 为 False

and 操作符

让我们仔细看看这些操作符,从 and 操作符开始。

在交互式环境中输入某个使用 and 的表达式,看看效果。

>>> True and True
True
>>> True and False
False

“真值表”显示了布尔操作符的所有可能结果。下表是操作符 and 的真值表。

        <td style="width:180px;">求值为</td>
    </tr><tr><td style="width:318px;">True and True</td>
        <td style="width:180px;">True</td>
    </tr><tr><td style="width:318px;">True and False</td>
        <td style="width:180px;">False</td>
    </tr><tr><td style="width:318px;">False and True</td>
        <td style="width:180px;">False</td>
    </tr><tr><td style="width:318px;">False and False</td>
        <td style="width:180px;">False</td>
    </tr>
</tbody>

and 操作符的真值表

表达式

or 操作符

另一方面,只要有一个布尔值为真,or 操作符就将表达式求值为 True 。如果都 是 False,所求值为 False

>>> False or True
True
>>> False or False
False

可以在 or 操作符的真值表中看到每一种可能的结果,如表所示。

    <td style="width:180px;">求值为</td>
</tr><tr><td style="width:318px;">True and True</td>
    <td style="width:180px;">True</td>
</tr><tr><td style="width:318px;">True and False</td>
    <td style="width:180px;">True</td>
</tr><tr><td style="width:318px;">False and True</td>
    <td style="width:180px;">True</td>
</tr><tr><td style="width:318px;">False and False</td>
    <td style="width:180px;">False</td>
</tr></tbody></table>

2.4.2. 一元布尔操作符 not

andor 不同, not 操作符只作用于一个布尔值(或表达式)。 not 操作符求值为相反的布尔值。

>>> not True
False
>>> not not not not True
True

就像在说话和写作中使用双重否定,你可以嵌套 not 操作符 0 ,虽然在真正的 程序中并不经常这样做。表展示了 not 的真值表。

or 操作符的真值表

表达式

    <td style="width:154px;">求值为</td>
</tr><tr><td style="width:344px;">not True</td>
    <td style="width:154px;">False</td>
</tr><tr><td style="width:344px;">not False</td>
    <td style="width:154px;">True</td>
</tr></tbody></table>

2.4.3. 混合布尔和比较操作符

既然比较操作符求值为布尔值,就可以和布尔操作符一起,在表达式中使用。

回忆一下, andornot 操作符称为布尔操作符是因为它们总是操作于布尔值。 虽然像 4<5 这样的表达式不是布尔值,但可以求值为布尔值。

在交互式环境中,尝试输入一些使用比较操作符的布尔表达式。

>>> (4 < 5) and (5 < 6)
True
>>> (4 < 5) and (9 < 6)
False
>>> (1 == 2) or (2 == 2)
True

计算机将先求值左边的表达式,然后再求值右边的表达式。知道两个布尔值后, 它又将整个表达式再求值为一个布尔值。

也可以在一个表达式中使用多个布尔操作符,与比较操作符一起使用。

>>> 2 + 2 == 4 and not 2 + 2 == 5 and 2 * 2 == 2 + 2
True

和算术操作符一样,布尔操作符也有操作顺序。 布尔操作符的优化度在算术操作符和比较操作符之后, 然后 Python 先求值 not 操作符,然后是 and 操作符,然后是 or 操作符。

By Bu Kun
© Copyright From 2020. Build on 2024-1-15. by BU Kun @ OSGeo China Chapter.

not 操作符的真值表

表达式