三元运算符

2017-08-18  本文已影响0人  是阿离

问题

想要进行逻辑运算:如果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、可以通过andor组合出一个三元运算符:((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...(# → ⌒ →)

参考文章

Python语言技巧之三元运算符使用介绍

上一篇下一篇

猜你喜欢

热点阅读