python三元运算符实现方法

 更新时间:2013年12月17日 09:07:13   作者:  
这篇文章主要介绍了python实现三元运算符的方法,大家参考使用吧

这是今天在温习lambda表达式的时候想到的问题,众所周知C系列语言中的 三元运算符(?:)是一个非常好用的语句,

关于C中的三元运算符

表达式1?表达式2:表达式3

那么在python应该如何实现呢,请看下面例子:

答案是:X = (表达式1)and 表达式2(真值返回)or 表达式3(假值返回)

举个例子:

复制代码 代码如下:

def main():
    y = 5
    x = (y > 5) and 2 or 4
    print x
    pass

这段代码的是意思的输出是4,可以把表达式的条件改为(y<=5)这时候输出就是2

为什么能得到这样的结果:

0、''、[]、()、{}、None在布尔上下文中为假;其它任何东西都为真。
在Python中,and和or执行布尔逻辑演算,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。
如果布尔上下文中的所有值都为真,那么and返回最后一个值。上下文中的某个值为假,则and返回第一个假值。
如果有一个值为真,or立刻返回该值。如果所有的值都为假,or返回最后一个假值
基于上述的背景,你应该还能理解这个表达式的含义了吧。

“注:“里面应该是这个用法的一些缺陷,如果表达式2或3是几个定义的假值(0、''、[]、()、{}、None)之一,就会影响判断了,我的建议是吧这些假值都用字符串的形式表现,并且将“”特殊处理为“”。后续再做判断

再次见识到Python的强大,如果您有什么见解欢迎评论。

后记:

最近看了一些文章,有位大神对这个问题对这个缺陷给了一个完美的解决方案

X=(表达式1)and[表达式2(真值返)]or[表达式3(假值返回)](注:表达式2以及表达3不能为0、''、[]、()、{}、None)

对表达式2,3用中括号括起来,这样两者的值将永远不会为假,这个解决方案的确不错。

相关文章

  • Django框架下静态模板的继承操作示例

    Django框架下静态模板的继承操作示例

    这篇文章主要介绍了Django框架下静态模板的继承操作,结合实例形式分析了Django框架模板继承操作的相关原理与操作注意事项,需要的朋友可以参考下
    2019-11-11
  • Python 利用4行代码实现图片灰度化的项目实践

    Python 利用4行代码实现图片灰度化的项目实践

    灰度处理是将彩色图像转换为灰度图像的过程,即每个像素的颜色由红、绿、蓝三个通道的值组成,转换为一个单一的灰度值,本文主要介绍了Python 利用4行代码实现图片灰度化的项目实践,感兴趣的可以了解一下
    2024-04-04
  • Python3实现建造者模式的示例代码

    Python3实现建造者模式的示例代码

    这篇文章主要介绍了Python3 实现建造者模式的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Python函数递归调用实现原理实例解析

    Python函数递归调用实现原理实例解析

    这篇文章主要介绍了Python函数递归调用实现原理过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Python使用分布式锁的代码演示示例

    Python使用分布式锁的代码演示示例

    这篇文章主要介绍了Python使用分布式锁的代码演示,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Python项目报错ModuleNotFoundError的终极解决方案

    Python项目报错ModuleNotFoundError的终极解决方案

    在 Python 项目开发中,很多同学都会遇到ModuleNotFoundError的问题报错,下面小编就和大家详细介绍一下具体的实现方法,希望对大家有所帮助
    2026-01-01
  • 简单实例带你了解Python的编译和执行全过程

    简单实例带你了解Python的编译和执行全过程

    python 是一种解释型的编程语言,所以不像编译型语言那样需要显式的编译过程。然而,在 Python 代码执行之前,它需要被解释器转换成字节码,这个过程就是 Python 的编译过程,还不知道的朋友快来看看吧
    2023-04-04
  • python将unicode和str互相转化的实现

    python将unicode和str互相转化的实现

    这篇文章主要介绍了python将unicode和str互相转化的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python人工智能算法之线性回归实例

    python人工智能算法之线性回归实例

    这篇文章主要为大家介绍了python人工智能算法之线性回归实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • python3调用百度翻译API实现实时翻译

    python3调用百度翻译API实现实时翻译

    这篇文章主要为大家详细介绍了python3调用百度翻译API,实现实时翻译,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08

最新评论