Python逻辑运算符用于形成复合布尔表达式。每个逻辑运算符的操作数本身就是一个布尔表达式。例如,
age > 16 and marks > 80
percentage < 50 or attendance < 75
除了关键字False
外,Python还将None
、所有类型的数值零、空序列(字符串、元组、列表)、空字典以及空集合解释为False
。所有其他值都被视为True
。
Python中有三个逻辑运算符:and
、or
和 not
。它们必须是小写字母。
逻辑“and”运算符
为了使复合布尔表达式为真,两个操作数都必须为真。如果任何一个或两个操作数评估为假,则表达式返回假。
逻辑“and”运算符真值表
a |
b |
a and b |
F |
F |
F |
F |
T |
F |
T |
F |
F |
T |
T |
T |
学习Python深入知识
通过我们的Python认证课程,通过实际项目深入学习Python。注册成为认证专家,提升你的职业生涯。
逻辑“or”运算符
相反地,“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”运算符真值表
Python解释器如何评估逻辑运算符?
表达式"x and y"首先评估"x"。如果"x"为假,则返回它的值;否则,评估"y"并返回结果值。
表达式"x or y"首先评估"x";如果"x"为真,则返回它的值;否则,评估"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:逻辑运算符与非布尔条件
我们可以使用非布尔操作数与逻辑运算符。在这里,需要注意的是任何非零数字和非空序列都评估为真。因此,相同的逻辑运算符真值表适用。
在下面的例子中,数值操作数用于逻辑运算符。变量"x"、"y"评估为真,而"z"评估为假。
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:逻辑运算符与字符串和元组
在下面的例子中,字符串变量被视为真,而空元组被视为假。
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]