Python 逻辑运算符怎么用?

文章导读
上一个 测验 下一个 Python 逻辑运算符 Python 逻辑运算符用于构建复合布尔表达式。这些逻辑运算符的每个操作数本身就是一个布尔表达式。例如,
📋 目录
  1. Python 逻辑运算符
  2. 逻辑 "and" 运算符
  3. 逻辑 "or" 运算符
  4. 逻辑 "not" 运算符
  5. Python 解释器如何求值逻辑运算符?
  6. Python 逻辑运算符示例
A A

Python - 逻辑运算符



上一个
测验
下一个

Python 逻辑运算符

Python 逻辑运算符用于构建复合布尔表达式。这些逻辑运算符的每个操作数本身就是一个布尔表达式。例如,

示例

age > 16 and marks > 80
percentage < 50 or attendance < 75

除了关键字 False 外,Python 还将 None、所有类型的数字零、空序列(字符串、元组、列表)、空字典和空集合解释为 False。所有其他值都被视为 True。

Python 中有三种逻辑运算符,它们是 "and"、"or" 和 "not"。它们必须使用小写。

逻辑 "and" 运算符

对于复合布尔表达式要为 True,两个操作数都必须为 True。如果任一或两个操作数求值为 False,则表达式返回 False。

逻辑 "and" 运算符真值表

下表显示了各种情况。

a b a and b
F F F
F T F
T F F
T T T

逻辑 "or" 运算符

相反,or 运算符在任一操作数为 True 时返回 True。要使复合布尔表达式为 False,两个操作数都必须为 False。

逻辑 "or" 运算符真值表

下表显示了 "or" 运算符在不同条件下的结果:

a b a or b
F F F
F T T
T F T
T T T

逻辑 "not" 运算符

这是一个一元运算符。其后布尔操作数的状态被反转。因此,not True 变为 False,not False 变为 True。

逻辑 "not" 运算符真值表

a not (a)
F T
T F

Python 解释器如何求值逻辑运算符?

表达式 "x and y" 首先求值 "x"。如果 "x" 为 false,则返回其值;否则,求值 "y" 并返回结果值。

logical_operator

表达式 "x or y" 首先求值 "x";如果 "x" 为 true,则返回其值;否则,求值 "y" 并返回结果值。

x_or_y

Python 逻辑运算符示例

以下给出了一些逻辑运算符的使用场景 −

示例 1:与布尔条件一起使用逻辑运算符

x = 10
y = 20
print("x > 0 and x < 10:",x > 0 and x < 10)
print("x > 0 and y > 10:",x > 0 and y > 10)
print("x > 10 or y > 10:",x > 10 or y > 10)
print("x%2 == 0 and y%2 == 0:",x%2 == 0 and y%2 == 0)
print ("not (x+y>15):", not (x+y)>15)

它将产生以下输出

x > 0 and x < 10: False
x > 0 and y > 10: True
x > 10 or y > 10: True
x%2 == 0 and y%2 == 0: True
not (x+y>15): False

示例 2:与非布尔条件一起使用逻辑运算符

我们可以使用非布尔操作数与逻辑运算符。这里需要注意的是,任何非零数字和非空序列都会求值为 True。因此,逻辑运算符的相同真值表适用。

在以下示例中,使用数字操作数与逻辑运算符。变量 "x"、"y" 求值为 True,"z" 为 False。

x = 10
y = 20
z = 0
print("x and y:",x and y)
print("x or y:",x or y)
print("z or x:",z or x)
print("y or z:", y or z)

它将产生以下输出

x and y: 20
x or y: 10
z or x: 10
y or z: 20

示例 3:与字符串和元组一起使用逻辑运算符

在以下示例中,字符串变量被视为 True,空元组被视为 False −

a="Hello"
b=tuple()
print("a and b:",a and b)
print("b or a:",b or a)

它将产生以下输出

a and b: ()
b or a: Hello

示例 4:使用逻辑运算符比较序列(列表)

最后,下面的两个列表对象都是非空的。因此 x and y 返回后者,x or y 返回前者。

x=[1,2,3]
y=[10,20,30]
print("x and y:",x and y)
print("x or y:",x or y)

它将产生以下输出

x and y: [10, 20, 30]
x or y: [1, 2, 3]