python条件运算符
Oct 02, 2008许多其他语言中都有条件运算符(conditional operator),形如cond?a:b,意思是if cond==TRUE: a else: b 由于这个运算符有三个操作数,因此叫做三目运算符(ternary operator)
python里的条件运算符形式如下: >>>a if cond else b 它的优先级仅次于赋值符号,是倒数第二低的
此外还有人建议一个条件运算符的替代形式: >>>cond and a or b 原理可以看这里。 但是这样会有问题,因为当a是0,空字符串”“,空列表[],空字典{},空元组()或None时,python会认为其值为False,从而得不到想要的结果。 >>> cond, a, b = True, 0, 1 #这样赋值后 >>> cond and a or b #这个表达式的结果不是a而是b 解决方法: >>> (cond and [a] or [b])[0] #因为[0]不是False的