Python 中的三元条件运算符

Syed Moiz Haider 2023年1月30日
  1. 在 Python 2.5 及更高版本中使用三元运算符
  2. 在 Python 中使用元组的三元运算符
  3. Python 中 2.5 之前的版本中使用 lambda 的三元运算符
Python 中的三元条件运算符

本教程将定义在 Python 中使用三元运算符的不同方法。与其他编程语言相比,在 Python 中使用三元运算符的方式有所不同。根据与 Python 版本的兼容性,可以使用多种方式使用三元运算符。本教程将提供示例代码,以说明如何在不同的 Python 版本中使用三元运算符。

在 Python 2.5 及更高版本中使用三元运算符

在 Python 2.5 中添加了三元条件运算符。三元运算符定义为采用三个操作数的运算符。在这种方法中,首先评估给定的条件,然后根据布尔运算符评估其中一个值并将其发送回去。它首先接受表达式,然后再次出现条件,其后是表达式的 else 部分。

Python 中三元运算符的语法如下。

value_if if condition else value_else

当三元运算符首先评估 condition 时,它允许短路,并且仅对两个表达式之一进行评估。如果 condition 为真,则对第一个表达式 value_if 求值,否则对第二个表达式 value_else 求值。

下面的示例代码演示了如何在 Python 中使用三元运算符。

a = 2
b = 0
1 if a > b else 0

输出:

1

可以将三元条件运算符的输出分配给变量,如下面的示例代码所示。

a = 2
b = 0
temp = a if a > b else b
print(temp)

输出:

2

在 Python 中使用元组的三元运算符

可以通过使用元组来使用 Python 中的三元运算符。它使用要求值的表达式和布尔条件语句。要返回的表达式取决于布尔条件。如果条件为 true,则返回第一个值,如果表达式为 false,则返回第二个值。但是,无论如何,此方法将评估所有内容,而不是仅评估获胜的表达式。

下面给出了一个示例代码,以说明如何在使用元组的 Python 中使用该三元运算符。

a, b = 12, 43
temp = (a * 2, b / 2)[a < b]
print(temp)

输出:

21.5

Python 中 2.5 之前的版本中使用 lambda 的三元运算符

对于 Python 2.5 之前的版本,三元运算符可与 lambda 一起使用。此方法采用要返回的值和布尔表达式。此方法遵循惰性评估技术,在该技术中,评估过程会延迟到需要其值之前。从这个意义上说,它是一种比元组方法更好的方法。该方法中的表达式为 (falseValue, trueValue)[Test]()。如果测试条件评估为 True,则将打印 trueValue;否则,将打印 falseValue

下面给出了一个示例代码,描述如何在 Python 中通过使用 lambda 来使用三元运算符。

val1, val2 = 12, 43

output = (lambda: val2, lambda: val1)[val1 > val2]()

print(output)

输出:

43
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

相关文章 - Python Operator