Python中的三元運算子?
許多程式語言都支援三元運算子,它基本上定義了一個條件表示式。
同樣,Python中的三元運算子用於根據二元條件的結果返回一個值。它以二元值(條件)作為輸入,因此看起來類似於“if-else”條件塊。但是,它也返回值,因此行為類似於函式。
語法
[on_true] if [expression] else [on_false]
讓我們編寫一個簡單的程式,比較兩個整數:
a. 使用Python if-else語句:
>>> x, y = 5, 6
>>> if x>y:
print("x")
else:
print("y")
yb. 使用三元運算子
>>> x, y = 5, 6
>>> print("x" if x> y else "y")
y使用三元運算子,我們能夠在一行程式碼中編寫程式碼。因此,Python首先評估條件,如果為真,則評估第一個表示式;否則,評估第二個條件。
>>> def find_max(a,b): return a if (a>b) else b >>> find_max(5, 6) 6
實現三元運算子的方法
以下是實現三元運算子的不同方法。
a. 使用Python元組
>>> a, b = random(), random() >>> (b, a) [a>b] 0.5497848117028667
以上等同於:
>>> (b, a) [True] 0.5065247098746795
但是,如果您對返回的值是“a”還是“b”感到困惑。讓我們重寫上面的程式碼。
>>> (f"b:{b}", f"a:{a}") [a>b]
'b:0.5497848117028667'b. 使用Python字典
>>> a, b = random(), random()
>>> {False: f"b:{b}", True: f"a:{a}"}[a>b]
'a:0.8089581560973976'我們可以互換鍵值對:
>>> {True: f"a:{a}", False: f"b:{b}"}[a>b]
'a:0.8089581560973976'c. 使用Lambda表示式
我們可以使用Python lambda函式作為三元運算子:
>>> (lambda: f"a:{a}", lambda: f"b:{b}")[a>b]()
'b:0.6780078581465793'巢狀Python三元運算子
讓我們嘗試連結這些運算子:
>>> from random import random >>> x = random() >>> "Less than zero" if x<0 else "between 0 and 5" if a>=0 and a<=5 else "Greather than five"
輸出
'between 0 and 5'
讓我們檢查x的實際值:
>>> x 0.08009251123993566
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP