我写程序很喜欢用三元运算符,但是在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。
本文探讨了Python中不直接支持三元运算符的问题,并提供了两种替代方案。一种是利用if-else语句的简化形式,另一种是巧妙地运用逻辑与或运算符实现条件判断。
2458

被折叠的 条评论
为什么被折叠?



