在計(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!'