代码改变世界

python中使用and和or来实现其它语言中的?号表达式

  JustRun  阅读(493)  评论(8编辑  收藏  举报

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的情况,比如空字符串
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示