新聞中心
Python 可通過(guò) if 語(yǔ)句來(lái)實(shí)現(xiàn)三目運(yùn)算符的功能,因此可以近似地把這種if語(yǔ)句當(dāng)成三目運(yùn)算符。作為三目運(yùn)算符的 if 語(yǔ)句的語(yǔ)法格式如下:

True_statements if expression else False_statements
三目運(yùn)算符的規(guī)則是:先對(duì)邏輯表達(dá)式 expression 求值,如果邏輯表達(dá)式返回 True,則執(zhí)行并返回 True_statements 的值;如果邏輯表達(dá)式返回 False,則執(zhí)行并返回 False_statements 的值??慈缦麓a:
a = 5 b = 3 st = "a大于b" if a > b else "a不大于b" # 輸出"a大于b" print(st)
實(shí)際上,如果只是為了在控制臺(tái)輸出提示信息,還可以將上面的三目運(yùn)算符表達(dá)式改為如下形式:
# 輸出"a大于b"
print("a大于b") if a > b else print("a不大于b")
Python 允許在三目運(yùn)算符的 True_statements 或 False_statements 中放置多條語(yǔ)句。Python 主要支持以下兩種放置方式:
多條語(yǔ)句以英文逗號(hào)隔開:每條語(yǔ)句都會(huì)執(zhí)行,程序返回多條語(yǔ)句的返回值組成的元組。
多條語(yǔ)句以英文分號(hào)隔開:每條語(yǔ)句都會(huì)執(zhí)行,程序只返回第一條語(yǔ)句的返回值。
先看第一種情形,使用如下代碼:
# 第一個(gè)返回值部分使用兩條語(yǔ)句,逗號(hào)隔開
st = print("crazyit"), 'a大于b' if a > b else "a不大于b"
print(st)
上面程序中 True_statements 為 print("crazyit"),'a大于b',這兩條語(yǔ)句都會(huì)執(zhí)行,程序?qū)?huì)返回這兩條語(yǔ)句的返回值組成的元組。由于 print() 函數(shù)沒(méi)有返回值,相當(dāng)于它的返回值是 None。運(yùn)行上面代碼,將看到如下結(jié)果:
crazyit (None,'a大于b')
如果將上面語(yǔ)句中的逗號(hào)改為分號(hào),將逗號(hào)之后的語(yǔ)句改為賦值語(yǔ)句,即寫成如下形式:
# 第一個(gè)返回值部分使用兩條語(yǔ)句,分號(hào)隔開
st = print("crazyit"); x = 20 if a > b else "a不大于b"
print(st)
print(x)
此時(shí)雖然 True_statements 包含兩條語(yǔ)句,但程序只會(huì)返回第一條語(yǔ)句 print(”crazyit”) 的返回值,該語(yǔ)句同樣返回 None,因此相當(dāng)于 str 的返回值為 None。運(yùn)行上面代碼,將看到如下結(jié)果:
crazyit None 20
需要指出的是,三目運(yùn)算符支持嵌套,通過(guò)嵌套三目運(yùn)算符,可以執(zhí)行更復(fù)雜的判斷。例如,下面代碼需要判斷 c、d 兩個(gè)變量的大小關(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"))
上面代碼首先對(duì) c>d 求值,如果該表達(dá)式為 True,程序?qū)?huì)執(zhí)行并返回第一個(gè)表達(dá)式:print(”c大于d”);否則系統(tǒng)將會(huì)計(jì)算 else 后面的內(nèi)容:(print("c小于d") if c < d else print("c等于d")),這個(gè)表達(dá)式又是一個(gè)嵌套的三目運(yùn)算符表達(dá)式。注意,進(jìn)入該表達(dá)式時(shí)只剩下“c小于d”或“c等于d”兩種情況,因此該三目運(yùn)算符再次判斷 c
本文題目:創(chuàng)新互聯(lián)Python教程:Python三目運(yùn)算符(三元運(yùn)算符)用法詳解
分享鏈接:http://m.5511xx.com/article/dhgoesh.html


咨詢
建站咨詢
