• 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中Genarator函数用法分析
  • 如何运行Python程序的方法
  • python制作一个桌面便签软件
  • Python编程中对super函数的正确理解和用法解析
  • Python实现类继承实例
  • 深入讲解Python编程中的字符串
  • Python selenium 三种等待方式解读
  • 在Django的视图(View)外使用Session的方法
  • python fabric使用笔记
  • Python设计模式中单例模式的实现及在Tornado中的应用

文章分类

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

最近更新的内容

    • Python多维/嵌套字典数据无限遍历的实现
    • Python __getattr__与__setattr__使用方法
    • Python脚本暴力破解栅栏密码
    • Python深入学习之装饰器
    • python操作MySQL数据库具体方法
    • python3图片转换二进制存入mysql
    • 使用Python脚本在Linux下实现部分Bash Shell的教程
    • python实现上传样本到virustotal并查询扫描信息的方法
    • 跟老齐学Python之重回函数
    • python 解析XML xml.dom

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

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