Python中三元表达式的几种写法介绍


Posted in Python onMarch 04, 2019

要介绍Python的三元表达式,可以先看看其他编程语言比如C,JAVA中应用:

public class java {
 public static void main(String[] args){
 int x = 100;
 int y = 101;
 int MAX = (x > y)? x: y;
 System.out.println("MAX:" + MAX);
 }
}

上面的例子可以很好的说明了其他语言的格式:

判段的条件 ? 条件为真时的结果:条件为假时的结果

而在Python中尽管也有三元表达式,但格式不同,先看下在Python中简单示例

>>> x = 4
>>> y = 99 if x > 3 else 999
>>> y
99

从上面的Python是示例可以看出,Python的三元表达式格式如下:

条件为真时的结果 if 判段的条件 else 条件为假时的结果

适用场景:变量赋值时,要做条件判断时,简化代码时使用。上面就是一个示例。 

先定义变量:

a = 1
b = 2

第一种写法:

erroStr = "More" if a > b else "Less"
print(erroStr) # 运行结果为:Less

第二种写法:

print({True: "More", False: "Less"}[a > b]) # 运行结果为:Less

第三种写法:

print(("FalseValue", "TrueValue")[a > b]) # 运行结果为:FalseValue

其中我们比较常见的是第一种。

第二三种是挺简洁的,但是写在项目里怕是接手的同事要抓狂了。

其他示例:

>>> def Max(x, y):
...   return x if x > y else y
>>> Max(99, 98)
99
>>> Max(78, 88)
88
>>> L = []
>>> x = 2
>>> L.append(100 if x > 1 else 0)
>>> L
[100]
>>> def fib(n):
...   return 1 if n == 1 else fib(n-1) + n
>>> fib(1)
1
>>> fib(5)
15
>>> L = [-2, -4, 0, 2, 5, 8]
>>> list(filter(lambda x:True if x > 0 else False, L))
[2, 5, 8]

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
python3+PyQt5使用数据库表视图
Apr 24 Python
django 使用 request 获取浏览器发送的参数示例代码
Jun 11 Python
python爬取哈尔滨天气信息
Jul 14 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
Python Django的安装配置教程图文详解
Jul 17 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
python 遍历pd.Series的index和value
Nov 26 Python
Python对Tornado请求与响应的数据处理
Feb 12 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 Python
Python生成器的使用方法和示例代码
Mar 04 #Python
Python去除字符串前后空格的几种方法
Mar 04 #Python
python调用外部程序的实操步骤
Mar 04 #Python
Python实现的合并两个有序数组算法示例
Mar 04 #Python
python创造虚拟环境方法总结
Mar 04 #Python
Python3爬楼梯算法示例
Mar 04 #Python
Python3最长回文子串算法示例
Mar 04 #Python
You might like
第十二节--类的自动加载
2006/11/16 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
使用JQuery进行跨域请求
2010/01/25 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
js闭包学习心得总结
2018/04/17 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
Python常用的日期时间处理方法示例
2015/02/08 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
Python os模块常用方法和属性总结
2020/02/20 Python
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
销售人员求职的自我评价分享
2014/03/15 职场文书
本科应届生求职信
2014/08/05 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
卖车协议书范文
2016/03/23 职场文书
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js