溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用Python三目運算符

發(fā)布時間:2020-08-26 15:57:54 來源:億速云 閱讀:170 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)怎么使用Python三目運算符,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

Python 可通過 if 語句來實現(xiàn)三目運算符的功能,因此可以近似地把這種if語句當(dāng)成三目運算符。作為三目運算符的 if 語句的語法格式如下:

True_statements if expression else False_statements

三目運算符的規(guī)則是:先對邏輯表達式 expression 求值,如果邏輯表達式返回 True,則執(zhí)行并返回 True_statements 的值;如果邏輯表達式返回 False,則執(zhí)行并返回 False_statements 的值??慈缦麓a:

a = 5
b = 3
st = "a大于b" if a > b else  "a不大于b"
# 輸出"a大于b"
print(st)

實際上,如果只是為了在控制臺輸出提示信息,還可以將上面的三目運算符表達式改為如下形式:

# 輸出"a大于b"
print("a大于b") if a > b else print("a不大于b")

Python 允許在三目運算符的 True_statements 或 False_statements 中放置多條語句。Python 主要支持以下兩種放置方式:

多條語句以英文逗號隔開:每條語句都會執(zhí)行,程序返回多條語句的返回值組成的元組。

多條語句以英文分號隔開:每條語句都會執(zhí)行,程序只返回第一條語句的返回值。

先看第一種情形,使用如下代碼:

# 第一個返回值部分使用兩條語句,逗號隔開
st = print("crazyit"), 'a大于b' if a > b else  "a不大于b"
print(st)

上面程序中 True_statements 為 print("crazyit"),'a大于b',這兩條語句都會執(zhí)行,程序?qū)祷剡@兩條語句的返回值組成的元組。由于 print() 函數(shù)沒有返回值,相當(dāng)于它的返回值是 None。運行上面代碼,將看到如下結(jié)果:

crazyit
(None,'a大于b')

如果將上面語句中的逗號改為分號,將逗號之后的語句改為賦值語句,即寫成如下形式:

# 第一個返回值部分使用兩條語句,分號隔開
st = print("crazyit"); x = 20 if a > b else  "a不大于b"
print(st)
print(x)

此時雖然 True_statements 包含兩條語句,但程序只會返回第一條語句 print(”crazyit”) 的返回值,該語句同樣返回 None,因此相當(dāng)于 str 的返回值為 None。運行上面代碼,將看到如下結(jié)果:

crazyit
None
20

需要指出的是,三目運算符支持嵌套,通過嵌套三目運算符,可以執(zhí)行更復(fù)雜的判斷。例如,下面代碼需要判斷 c、d 兩個變量的大小關(guān)系:

c = 5
d = 5
# 下面將輸出c等于d
print("c大于d") if c > d else (print("c小于d") if c < d else print("c等于d"))

上面代碼首先對 c>d 求值,如果該表達式為 True,程序?qū)?zhí)行并返回第一個表達式:print(”c大于d”);否則系統(tǒng)將會計算 else 后面的內(nèi)容:(print("c小于d") if c < d else print("c等于d")),這個表達式又是一個嵌套的三目運算符表達式。注意,進入該表達式時只剩下“c小于d”或“c等于d”兩種情況,因此該三目運算符再次判斷 c<d,如果該表達式為 True,將會輸出“c小于d”;否則只剩下“c等于d”一種情況,自然就輸出該字符串了。

看完上述內(nèi)容,你們對怎么使用Python三目運算符有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI