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