問題
想要進(jìn)行邏輯運(yùn)算:如果A大于B,則A,否則B。
按照java、js等的思維:(A > B) ? A : B。結(jié)果python直接給返回了個(gè)“你這問號(hào)是個(gè)啥,不認(rèn)得”。<ignore>當(dāng)然,這只是我翻譯過來的。</ignore>
現(xiàn)在想要知道python中是如何使用三元運(yùn)算符的
方案
對于問題中邏輯運(yùn)算
1、在python2.5版本以后,增加了一個(gè):A if (A > B) else B。通過if else來組合成三元運(yùn)算符。
2、可以通過and與or組合出一個(gè)三元運(yùn)算符:((A > B) and A) or B。需要注意的是:如果A為空字符串'',則該表達(dá)式恒返回B。解釋如下:
A = ''
B = 'B'
print A and B #輸出為空
print A or B #輸出為B
Python把0、空字符串''和None看成 False,其他數(shù)值和非空字符串都看成 True
| 輸入 | 布爾值 |
|---|---|
| 1,-1,[“”] | True |
| 0, “”, None, [], (), {}, (“”) | False |
3、不使用三元運(yùn)算符,使用if...else...(# → ⌒ →)