问题
想要进行逻辑运算:如果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...
(# → ⌒ →)