📜  Python OR 运算符

📅  最后修改于: 2022-05-13 01:54:58.764000             🧑  作者: Mango

Python OR 运算符

Python OR 运算符至少接受两个布尔表达式,如果其中任何一个表达式为 True,则返回 True。如果所有表达式都为 False,则返回 False。

Python OR 运算符流程图

Python 逻辑或运算符

Python OR 运算符的真值表

Expression 1Expression 2Result
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

将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。