• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python中 ? : 三元表达式的使用介绍

python中 ? : 三元表达式的使用介绍

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python 三元表达式,python 三元运算符,python 三元操作符,python 三元,python 三元运算等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

(1) variable = a if exper else b
(2)variable = (exper and [b] or [c])[0]
(2) variable = exper and b or c

上面三种用法都可以达到目的,类似C语言中 variable = exper ? b : c;即:如果exper表达式的值为true则variable = b,否则,variable = c

例如:

输入 布尔求值
1,-1,[“”] True
0, “”, None, [], (), {}, (“”) False

python 三元表达式

之前学习的Python提到了对于类似C语言的三元条件表达式condition ? true_part : false_part,虽然Python没有三目运算符(?:),但也有类似的替代方案,那就是true_part if condition else false_part。

在编程中我也一直这么用了,直到有一天发现了一个有趣的技巧,那就是and-or技巧,利用条件判断的优先特性来实现三元条件判断,比如P∧Q,在Python中如果P为假,那么Python将不会继续执行Q,而直接判定整个表达式为假(P值),当然如果P为真,那就还要继续执行Q来决定整个表达式值;同样的P∨Q,如果P为真,那么就不会继续执行Q了…

其实很多编程语言在逻辑判断中都应用了这套机制,目前我接触下来的貌似VB/VBScript可能不是这么做的。有了这套机制除了在if判断中提高效率外,我们还可以额外发掘一些有趣的功能,比如下面的PHP代码:

如果mysql_connect成功的话将会返回resource资源句柄,如果失败的话将会返回False,等等,后面还有个or,也就是失败的话还将会继续执行or后面的die语句,于是输出了错误信息并终止后续代码的执行。

再如下面的JavaScript代码:

这段代码获取的是event,假如没有给getEvent传入值(即e为undefined),或者e为NULL(两者在JavaScript条件中均代表False),e = e || window.event表达式将会把window.event赋值给e,否则e为Object对象,原表达式会蜕化为e = e赋值,也就是没有改变什么。

好了,扯了这么多,稍稍有些偏题了,下面继续聊Python的and-or技巧,可以这么说,这个技巧也是利用了逻辑判断的特殊性,貌似在真正的三元表达式if else没有出来的时候其就一直在扮演三元表达式的角色,其原型是condition and true_part or false_part,下面举几个例子:

但是值得注意的是虽然表面看上去能够正常工作,其实还潜藏有不可知的风险,若我们的true_part本身就是个被Python认定为False的值,这个技巧就不可用了,我们知道空字符串就是这种情况。

上面的表达式其实我们期望返回空字串的,如何解决呢,我在Dive Into Python中找到了解决方案:那就是利用列表特性,因为包含空字符串的列表其表达式值仍然为True,所以我们可以用列表先包装一下,然后等表达式判断完毕后在解包:

当然为了避免出错,我们可以将其包装为函数:

</d

您可能想查找下面的文章:

  • Python三元运算实现方法
  • Python三元运算实现方法
  • python中 ? : 三元表达式的使用介绍
  • python中 ? : 三元表达式的使用介绍

相关文章

  • python实现折半查找和归并排序算法
  • Python NumPy库安装使用笔记
  • Python中replace方法实例分析
  • 合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
  • python在Windows8下获取本机ip地址的方法
  • 动态创建类实例代码
  • python文件和目录操作函数小结
  • Django中使用locals()函数的技巧
  • Python获取远程文件大小的函数代码分享
  • 对于Python装饰器使用的一些建议

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python urllib模块urlopen()与urlretrieve()详解
    • 以一个投票程序的实例来讲解Python的Django框架使用
    • python让图片按照exif信息里的创建时间进行排序的方法
    • 使用Python获取Linux系统的各种信息
    • python正则表达式中的括号匹配问题
    • Python中字典的基础知识归纳小结
    • 利用python实现数据分析
    • 读写json中文ASCII乱码问题的解决方法
    • Python实现快速排序算法及去重的快速排序的简单示例
    • 使用go和python递归删除.ds store文件的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有