Python OR 运算符
Python OR 运算符至少接受两个布尔表达式,如果其中任何一个表达式为 True,则返回 True。如果所有表达式都为 False,则返回 False。
Python OR 运算符流程图
Python OR 运算符的真值表
Expression 1 | Expression 2 | Result |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
将Python OR 运算符与布尔表达式一起使用
Python OR运算符在传递的任何一个布尔表达式为 True 时返回 True。
示例:带布尔表达式的 Or 运算符
Python3
bool1 = 2>3
bool2 = 2<3
print('bool1:', bool1)
print('bool2:', bool2)
# or operator
OR = bool1 or bool2
print("OR operator:", OR)
Python3
# or operator with if
def fun(a):
if a >= 5 or a <= 15:
print('a lies between 5 and 15')
else:
print('a is either less than 5 or greater than 15')
# driver code
fun(10)
fun(20)
fun(5)
Python3
# short circuit in Python or operator
def true():
print("Inside True")
return True
def false():
print("Inside False")
return False
case1 = true() or false()
print("Case 1")
print(case1)
print()
case2 = true() or true()
print("Case 2")
print(case2)
print()
case3 = false() or false()
print("Case 3")
print(case3)
print()
case4 = false() or true()
print("Case 4")
print(case4)
输出
bool1: False
bool2: True
OR operator: True
在 if 中使用Python OR 运算符
我们可以在 if 语句中使用 OR运算符。如果任何一个条件变为 true,我们可以在要执行 if 块的情况下使用它。
示例:带有 if 语句的 Or 运算符
Python3
# or operator with if
def fun(a):
if a >= 5 or a <= 15:
print('a lies between 5 and 15')
else:
print('a is either less than 5 or greater than 15')
# driver code
fun(10)
fun(20)
fun(5)
输出
a lies between 5 and 15
a lies between 5 and 15
a lies between 5 and 15
在上面的输出中,我们可以看到 if 语句的代码总是被执行。这是因为对于 a 的每个值,其中一个布尔表达式将始终为 True,而 else 块将永远不会被执行。
Python OR 运算符 - 短路
Python Or运算符总是对表达式求值,直到它找到一个 True 并且一旦它找到一个 True 则不检查表达式的其余部分。请考虑以下示例以更好地理解。
示例: Python OR 运算符中的短路
Python3
# short circuit in Python or operator
def true():
print("Inside True")
return True
def false():
print("Inside False")
return False
case1 = true() or false()
print("Case 1")
print(case1)
print()
case2 = true() or true()
print("Case 2")
print(case2)
print()
case3 = false() or false()
print("Case 3")
print(case3)
print()
case4 = false() or true()
print("Case 4")
print(case4)
输出
Inside True
Case 1
True
Inside True
Case 2
True
Inside False
Inside False
Case 3
False
Inside False
Inside True
Case 4
True
从上面的例子中,我们可以看出遵循的是短路或惰性求值。在 case1 和 case2 中,不计算第二个表达式,因为第一个表达式返回 True,而在 case3 和 case4 中,计算第二个表达式,因为第一个表达式不返回 True。