这是今天在温习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用中括号括起来,这样两者的值将永远不会为假,这个解决方案的确不错。

本文标题: python三元运算符实现方法

本文地址: http://www.cppcns.com/jiaoben/python/102803.html

python 三元运算符求abc_python三元运算符实现方法相关推荐

  1. Python学习之求绝对值的几种方法

    import mathdef abs_value1():a = float(input('1.请输入一个数字:'))if a >= 0:a = aelse:a = -aprint('绝对值为:% ...

  2. python关系运算符中表示不等于的关系运算符_Python学习之------运算符表达式(关系运算符,逻辑运算符,三元表达式,成员关系)...

    @详细看Python学习手册第121页. 1,算术运算符(加减乘除) 2,关系运算符(又叫比较运算符 > < == != >= <=) xy,x>=y    大小比较,返 ...

  3. 【笔记】Java的运算符(赋值运算符号、一元运算符、算术运算符、关系运算符、自增与自减运算符、逻辑运算符、括号运算符、位运算符、三元(三目)运算符)、表达式与语句:简洁表达式

    文章目录 一.运算符 1.赋值运算符号 2.一元运算符 3.算术运算符 4.关系运算符 5.自增与自减运算符 6.逻辑运算符 7.括号运算符 8.位运算符 左移位: 右移位: 9.三元(三目)运算符 ...

  4. PHP三元运算符vs空合并运算符

    本文翻译自:PHP ternary operator vs null coalescing operator Can someone explain the differences between t ...

  5. java中三元运算符_java中三元运算符详解

    三元运算符: 顾名思义,三元运算符需要三个操作数. 语法为:条件表达式?表达式1:表达式2. 说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式 ...

  6. php 三元运算符 为空,PHP中三元运算符和Null合并运算符的简单比较

    在PHP中,三元运算符(?:)和Null合并运算符(??)的用法相似,那么它们之间有什么差异?下面本篇文章就来带大家了解一下三元运算符和Null合并运算符,希望对大家有所帮助. 三元运算符 三元运算符 ...

  7. python怎么显示求余的除数_Python算术运算符及用法详解

    算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除.下表列出了 Python 支持所有基本算术运算符. 表 1 Python 常用算术运算符 运算符 说明 实例 结果 + 加 12.45 ...

  8. 三元(三目)运算符解释

    三元运算符语法:条件 ? 结果1 : 结果2 说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2. 下面我们来详细探讨下. 今天在改论文在线的时候遇到了一个语句看不懂: 1 $if ...

  9. php三元运算符 echo_php的三元运算符

    简单记录一哈php的三元运算符的用法: 啥子是三元运算,即第一个表达式作为判断条件,在后面两个表达式中选择一个执行. 若判断成立,则执行第二个表达式,否则执行第三个表达式. 看到好多网友都说的不太全面 ...

最新文章

  1. 稀疏数据分析:马蹄估计量及其理论性质
  2. 正则表达式的一些规则
  3. Database工作笔记-对层次库的理解
  4. 对前后端分离和FastDFS的使用的再理解
  5. 从Iris数据集开始---机器学习入门
  6. gom引擎传奇MapInfo.txt地图参数详解
  7. ADS软件仿真实例大战(一)
  8. 三星 s4(i9502) android4.4rom 官方,三星I9502(S4)联通版一键ROOT权限获取+USB驱动
  9. MAX3485芯片资料整理
  10. 解决虚拟机突然断网问题
  11. 基于单片机的建筑工地降尘系统
  12. Cartesian convention笛卡尔公约
  13. VMware虚拟机备份和恢复
  14. matplotlib之pyplot模块之坐标轴配置(axis():设置坐标轴外观、设置坐标轴范围)
  15. 机械键盘win键和Alt键颠倒,解决办法?
  16. 国产ERP不如洋品牌但适合国能中小药企(转)
  17. Apache HttpClient
  18. matlab按图像边缘抠图_不会抠图?保姆级抠图教程!手把手教你抠图(一)
  19. 03 Opencv部分经典例程赏析
  20. 快手短视频如何支撑 10 亿月活,揭秘快手大数据中台架构!

热门文章

  1. unity Android 指南针,Unity之一天一个技术点(十二)---指南针的实现
  2. ajax 入参为list_ajax向后台传入List
  3. Java黑皮书课后题第10章:**10.9(Course类)如下改写Course类
  4. 抓wifi包工具linux,测试工具之在Ubuntu使用Wireshark抓无线数据包
  5. 从入门到放弃,.net构建博客系统(二):依赖注入
  6. leetcode-Combination Sum-39
  7. Levenshtein Distance算法(编辑距离算法)
  8. Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
  9. Linux iptables 防火墙相关命令介绍及使用
  10. 中文Ubuntu主目录下的文档文件夹改回英文