Skip to content

逻辑运算符

逻辑运算符

逻辑运算符一般用来解决当有多个关系条件需要判断时使用,用来确定这些条件组合的方式,运算结果为布尔类型值。

Python 中提供的逻辑运算符如下表所示:

运算符 逻辑表达式 描述
and x and y 逻辑"与" : 如果 xFalsex and y 返回 False,否则它返回 y的计算值。
or x or y 逻辑"或" : 如果 x非 0,它返回 x 的计算值,否则它返回 y 的计算值。
not not x 逻辑"非" : 如果 xTrue,返回 False 。如果 xFalse,它返回 True

逻辑与运算符 and

逻辑与运算符用来连接多个关系条件运算,只有当多个条件同时满足时,结果为真 True,否则为假 False

print(3 > 2 and 2 > 1)
print(3 < 2 and 2 > 1)
print(3 < 2 and 2 < 1)
print(1 < 2 and "H" + "W")

逻辑或运算符 or

逻辑或运算符用来连接多个关系条件运算,只有当多个条件同时不满足时,结果为假 False,只要其中有一个条件为真,结果即为真 True

print(3 > 2 or 2 > 1)
print(3 < 2 or 2 > 1)
print(3 < 2 or 2 < 1)
print(1 > 2 and "H" + "w")

逻辑非运算符 not

逻辑非运算符用来对表达式结果进行取反运算,如果表达式结果为真,则取反结果为假 False,如果表达式结果为假,则结果即为真 True

print(not (3 > 2))
print(not (3 < 2))

短路特性

在使用 逻辑与 运算符和 逻辑或 运算符时,如果自左向右计算结果可以确定整个表达式的结果时,后面的表达式条件便不在计算。

非短路操作

result = True and print("Hello, World!1")  # 第一个操作数为True,不能确定后续都为真,所以print语句会执行
print(result)   # 输出 None,print语句的返回值为None

result = False or print("Hello, World!2")  # 第一个操作数为False,不能确定后续都为假,所以print语句会执行
print(result)  # 输出 None,print语句的返回值为None

短路操作

result = False and 1/0  # 第一个操作数为False,已经可以确认整个表达式的结果,虽然表达式有除0错误,但并不会执行
print(result)  # 结果为False

result = True or 1/0  # 第一个操作数为True,已经可以确认整个表达式的结果,虽然表达式有除0错误,但并不会执行
print(result)  # 结果为True