问题
想要进行逻辑运算:如果A大于B,则A,否则B。
按照java、js等的思维:(A > B) ? A : B。结果python直接给返回了个“你这问号是个啥,不认得”。<ignore>当然,这只是我翻译过来的。</ignore>
现在想要知道python中是如何使用三元运算符的
方案
对于问题中逻辑运算
1、在python2.5版本以后,增加了一个:A if (A > B) else B。通过if else来组合成三元运算符。
2、可以通过and与or组合出一个三元运算符:((A > B) and A) or B。需要注意的是:如果A为空字符串'',则该表达式恒返回B。解释如下:
A = ''
B = 'B'
print A and B #输出为空
print A or B #输出为B
Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True
| 输入 | 布尔值 | 
|---|---|
| 1,-1,[“”] | True | 
| 0, “”, None, [], (), {}, (“”) | False | 
3、不使用三元运算符,使用if...else...(# → ⌒ →)