Python 中的三元條件運算子

Syed Moiz Haider 2023年1月30日 2021年4月29日
  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