我写程序很喜欢用三元运算符,但是在python中居然不支持,有点郁闷,查了下资料,发现还是有解决方案的。
比如,一个这样的函数:
function trans(v) {
return (v==0)?1:v;
}
啧啧,三元运算符看着就是漂亮,不知道python为什么不支持。
下面看一下python的解决方案一:
def trans(v):
return 1 if v==0 else v
也就是if else语句的简写形式,意思一看就明白,看起来还不错。
下面是解决方案二:
def trans(v):
return v==0 and 1 or v
用到了与或运算符的特性。
解释一下:如果v等于0为true,则跟1做与运算,为true,则不进行后面的或运算,直接返回1;如果v等于0为false,则跟1做与运算,为false,继续进行或运算,返回v。