逻辑运算符一般用来解决当有多个关系条件需要判断时使用,用来确定这些条件组合的方式,运算结果为布尔类型值。
Python 中提供的逻辑运算符如下表所示:
逻辑与运算符(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