Python 中的三目運(yùn)算

在計(jì)算機(jī)語(yǔ)言中,有一種叫做 三目運(yùn)算 的表達(dá)式(也叫三元表達(dá)式)。主要用于處理不同條件下的變量取值,簡(jiǎn)化版的邏輯判斷語(yǔ)句。

基本表達(dá)式如下:

變量 =  值1 if 條件 else 值2

如果條件滿足,則變量取值1,否則取值2

下例中的 x 當(dāng) a > b 的時(shí)候取 a 的值,否則取 b 的值:

>>> a = 5
>>> b = 10    
>>> x = a if a > b else b     # 如果 a > b 取 a,否則取 b
>>> x                         # a 明顯不大于 b,所以取 else 后面的 b
10

從鍵盤(pán)接收輸入,如果輸入不為空,變量 isinput 取值 True,否則為 False:

>>> isinput = True if input('輸入:') else False
輸入:x
>>> isinput
True
>>> isinput = True if input('輸入:') else False
輸入:                        # 直接回車(chē),相當(dāng)于接收了一個(gè)空字符串
>>> isinput
False

其他語(yǔ)言中的寫(xiě)法一般類(lèi)似變量 = 條件 ? 值1:值2,條件成立則取值1,否則取值2:

n = 8>4?1:0   //取值為0

Python 中還有一種三目運(yùn)算的簡(jiǎn)化寫(xiě)法:

變量 = 值1 or 值2

如果值1存在則變量的值為值1,否則當(dāng)值1不存在(值1為None,為0,為空字符串、空列表等用布爾表達(dá)式預(yù)算為 False 的情況)則取值2
相當(dāng)于:

變量 = 值1 if 值1 else 值2

例子,

>>> a = []
>>> x = a or 10
>>> x      # a 為 0,在條件中為 False
10

# 修改一下上面 input 的例子:
>>> y = input('輸入:') or 'nothing'
輸入:  # 直接回車(chē),相當(dāng)于輸入空字符串
>>> y
'nothing'
>>> y = input('輸入:') or 'nothing'
輸入:hi!
>>> y
'hi!'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 文字/馬德 攝影/漁者 一個(gè)人,往往會(huì)在追不上的人那里,表現(xiàn)出恢弘的氣度。比如,馬云遠(yuǎn)遠(yuǎn)地跑在了前面,非...
    漁者閱讀 443評(píng)論 0 0
  • 需要說(shuō)一句,多種類(lèi)別甚至多部門(mén)管理的現(xiàn)狀,自然利弊皆有。呂忠梅的建議文本中,對(duì)既有保護(hù)區(qū)的問(wèn)題,歸納為四種,第一點(diǎn)...
    青色櫻桃子閱讀 141評(píng)論 0 0
  • 我現(xiàn)在在想,如果當(dāng)初就不加這個(gè)事服,是不是就不會(huì)有這么多的事情。如果當(dāng)初就沒(méi)有選擇信宣,如果當(dāng)初早一點(diǎn)放棄,是不是...
    夢(mèng)里吃點(diǎn)什么好呢閱讀 153評(píng)論 0 0
  • 我穿過(guò)街道 遇見(jiàn)多年前的你 和我自己 我路過(guò)小店 看見(jiàn)依偎在一起的情侶 卻再見(jiàn)不到牽著我手的你 我一個(gè)人踏過(guò)了春夏...
    sherry_18閱讀 683評(píng)論 0 0

友情鏈接更多精彩內(nèi)容