python实现问号表达式(?)的方法

风景优美的黄山景区,一年四季游人如织。蜀僧抱绿绮,西下峨眉峰。为我一挥手,如听万壑松。客心洗流水,馀响入霜钟。不觉碧山暮,秋云暗几重。

python中的and和or和其它语言的区别很大
其它语言中的and和or都是返回bool类型的结果,python不是。它返回的是做and和or运算的其中一个值。
那个值决定了这个表达式的值,就返回那个值。


>> 5 and ''

这里结果是'', 空字符串, 因为是它导致了这个表达式为false.
也就是所在and中,只有前面一个值是false的时候,才有可能成为结果。否则就是后面的值为结果。

了解了and和or运行的过程,那么就可以实现?表达式了:


if (expression):
return truevalue
else:
return falsevalue

和这个等价的写法是(类似?号表达式):


expression and truevalue or falsevalue
#或者
(expression and (truevalue,) or (falsevalue,))[0] #感谢snake117提供的建议

#这种是避免truevalue有可能是false的情况,比如空字符串

到此这篇关于python实现问号表达式(?)的方法就介绍到这了。没有什么事情有象热忱这般具有传染性,它能感动顽石,它是真诚的精髓。更多相关python实现问号表达式(?)的方法内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

标签: python