【Python入门教程】第14篇 逻辑运算符

本篇我们将会学习 Python 逻辑运算符,以及如何使用它们组合多个判断条件。

逻辑运算符

有些时候我们想要一次检查多个判断条件,为此可以使用逻辑运算符(logical operator)。

Python 支持以下三种逻辑运算符:

  • and
  • or
  • not

逻辑与(and)运算符

逻辑与(and)运算符用于检查两个条件是否同时为 True:

a and b

如果两个条件都为 True,返回 True;如果任何一个条件为 False,返回 False。

以下示例使用 and 运算符组合了两个比较 price 的条件:

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

结果返回了 True,因为 price 大于 9 并且小于 10。

以下示例返回了 False,因为 price 没有大于 10:

>>> price > 10 and price < 20
False

以上示例中的 price > 10 返回了 False,第二个条件 price < 20 返回了 True。

下表列出了 and 运算符组合两个条件时的结果:

a b a and b
True True True
True False False
False True False
False False False

从上表中可以看出,只有两个条件都为 True 时表达式 a and b 才会返回 True。

逻辑或(or)运算符

与 and 运算符类似,逻辑或(or)运算符也可以检查多个判断条件。不同之处在于,只要有一个条件为 True,or 运算符就会返回 True;否则,返回 False:

a or b

下表列出了 or 运算符组合两个条件时的结果:

a b a or b
True True True
True False True
False True True
False False False

只有当两个条件都为 False 时,or 运算符才会返回 False。

以下示例演示了 or 运算符的作用:

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

在以上示例中,price < 20 结果为 True,因此整个表达式返回了 True。

以下示例返回了 False,因为两个条件都为 False:

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

逻辑非(not)运算符

逻辑非(not)运算符用于将后面的判断条件取反,True 变成 False,False 变成 True。

not a

如果判断条件为 True,not 运算符返回 False;反之亦然。

下表列出了 not 运算符的结果:

a not a
True False
False True

以下示例使用了 not 运算符,因为 price > 10 结果为 False,所以 not price > 10 返回 True:

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

以下示例将 not 运算符和 and 运算符进行了组合:

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

在以上示例中,Python 按照以下顺序计算表达式的值:

  • 首先,(price > 5 and price < 10) 返回 True。
  • 然后,not True 返回 False。

以上示例涉及了一个重要的概念,称为逻辑运算符的优先级。

逻辑运算符的优先级

当我们同时在一个表达式中混合使用了不同的逻辑运算符,Python 将会按照一定的优先级执行这些运算。

以下是逻辑运算符的优先级:

Operator Precedence
not High
and Medium
or Low

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

总结

  • 使用逻辑运算符组合多个判断条件。
  • Python 支持 3 种逻辑运算符:and、or 以及 not。
  • 逻辑运算符的优先级从高到低依次为:not、and 以及 or。
上一篇:Ubuntu-Realsense开发(一)


下一篇:php session的理解与使用