Python OR 运算符

2025 年 5 月 27 日 | 阅读 5 分钟

“或”运算符 (or operator) 是 Python 中的一个逻辑运算符,用于组合两个或多个条件。此操作返回一个布尔值 - 如果至少有一个条件为真,则返回 True;如果所有条件都为假,则返回 False

我们通常在if 语句 assert 语句while 循环以及需要从多个变量中选择第一个真值(truthy value)的表达式中使用 Python 的“或”运算符

OR 操作流程图

现在我们来看下面的流程图,它直观地表示了 Python 中“或”运算符的工作原理。

Python OR Operator

流程图分步说明

步骤 1: 计算表达式 X or Y(整体逻辑条件)

步骤 2: 检查 X(第一个操作数)的值

  • 如果 X == True,则表达式 X or Y 立即返回 True,而 Y 将不会被计算。
  • 如果 X == False,Python 将检查第二个操作数 Y

步骤 3: 检查 Y(第二个操作数)的值

  • 如果 Y == True,结果为 True
  • 如果 Y == False,结果为 False

Python OR 运算符的真值表

表达式 1表达式 2结果
FalseFalseFalse
Falsetruetrue
trueFalsetrue
truetruetrue

在 Python 中使用 OR 运算符处理布尔表达式

Python 的“或”运算符通常用于组合布尔表达式(计算结果为 TrueFalse 的条件)。当我们使用 “或”运算符时,如果至少有一个条件为 True,则整个表达式返回 True。如果所有条件都为 False,则返回 False

让我们看一个简单的例子,展示 Python “或”运算符在布尔表达式中的用法。

示例

立即执行

输出

Boolean Expression 1: False
Boolean Expression 2: True
Result: True

说明

在上面的示例中,我们定义了两个布尔表达式 bool_exp_1bool_exp_2。然后我们使用 “或”运算符来组合这两个表达式。由于其中一个表达式为 True,因此此操作的结果也为 True

在 Python if 语句中使用 OR 运算符

我们可以在 if 语句中使用 “或”运算符来检查多个条件。如果其中任何一个条件为 True,则整个表达式求值为 True

让我们看一个例子。

示例

立即执行

输出

The number is either 10 or 20.
The number is not 10 or 20.
The number is either 10 or 20.

说明

在此示例中,我们定义了一个名为 check_number() 的函数,该函数接受一个参数 num。在此函数内部,我们在 if 语句中使用 “或”运算符来检查传入的参数是 10 还是 20。然后我们调用 check_number() 来检查不同的数字,例如 10、14 和 20。

结果是,如果 if 语句中指定的任何条件为 True,则执行 if 块内的 print() 函数;否则,将执行 else 块。

Python OR 运算符 - 短路求值

Python 中,短路求值 (Short-circuiting) 指的是,如果表达式的真值已经确定,则停止对该布尔运算的执行。

对于 “或”运算符,如果第一个操作数或布尔表达式为 True,Python 将不会检查第二个操作数,因为整个表达式已经为 True。

现在让我们看下面的例子

示例

立即执行

输出

Inside the 'True' function
Case 1:  True

Inside the 'True' function
Case 2:  True

Inside the 'False' function
Inside the 'True' function
Case 3:  True

Inside the 'False' function
Inside the 'False' function
Case 4:  False

说明

在这个例子中,我们定义了两个函数 true() 和 false()。在这些函数中,我们返回了布尔值 True 和 False。然后我们使用“或”运算符在调用时组合这些函数。

结果是,我们可以看到当第一个操作数为 True 时,Python 如何进行短路求值。

结论

在本教程中,我们通过各种示例学习了 Python “或”运算符。我们讨论了如何在布尔表达式和 if 语句中使用 “或”运算符。最后,我们讨论了短路求值如何影响 Python “或”运算符的执行流程。

Python OR 运算符常见问题解答

1. Python 中的“或”运算符有什么作用?

如果提供的操作数中有任何一个为真,它就返回 True。简而言之,当有多个条件时,只需要其中任何一个满足即可执行代码块。

2. OR 运算符的短路求值是什么意思?

它允许在找到任何一个 True 的语句时停止进一步的检查。后续的计算不再必要,从而提高了效率。

3. “或”运算符可以与非布尔值一起使用吗?

当然!实际上,像 0、“ ” (空字符串)、None 和 [] (空列表) 这样的值被视为 False。而其他任何值都被视为 True。如果所有 3 个标志值都为 false,则返回最后一个。否则,将选择第一个真值。

4. or 和 | 有什么区别?

“或”运算符 (or operator) 是一个用于布尔值的逻辑运算符,而 “|”运算符是一个用于整数的按位运算符。它比较其操作数的每一位,并返回一个结果,其中当任一操作数在该位上为 1 时,结果的相应位也为 1。

示例

立即执行

输出

True
7 (binary: 101 | 011 = 111)

5. 可以在 if 语句中使用 or 吗?

是的!它常用于检查多个条件中是否有任何一个为 True