Python中使用Boolean操作符做真值测试实例


Posted in Python onJanuary 30, 2015

在Python中,任何类型的对象都可以做真值测试,并且保证返回True或者False。

以下几种值(不论类型)在真值测试中返回False:

1.None
2.False
3.任何类型的数字0,包括0,0.0,0L,0j
4.空的序列(sequence)或者映射(mapping)类型对象
5.对于用户自定义类型的对象,如果其类定义了__nonzero__() 或者 __len__()特殊方法并且返回False或者0

对于最后一条规则,有几点需要说明:

1.如果类没有定义这两个方法中的任何一个,则这种类型的对象真值测试时总是为True
2.如果类同时定义了__nonzero__() 和 __len__(),只会参考__nonzero__()的返回值

Boolean操作符的特性(直接copy文档而来):

x or y: if x is false, then y, else x

x and y: if x is false, then x, else y

not x: if x is false, then True, else False

1.注意and和or操作符的短路特性
2.not运算符要么返回True要么返回False
3.and和or运算符的返回值不限于True和False,它只是对x或者y做真值测试,然后返回其中一个的值(注意不是其真值)

代码示例:

s = ''

s = s or 'default value'

print s

运行结果是:

default value
Python 相关文章推荐
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
python Django批量导入不重复数据
Mar 25 Python
利用Python开发实现简单的记事本
Nov 15 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
Python3实现发送QQ邮件功能(附件)
Dec 23 Python
python的Crypto模块实现AES加密实例代码
Jan 22 Python
使用python爬取B站千万级数据
Jun 08 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
pandas DataFrame创建方法的方式
Aug 02 Python
解决Python spyder显示不全df列和行的问题
Apr 20 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
Python中的zip函数使用示例
Jan 29 #Python
Python的另外几种语言实现
Jan 29 #Python
python中使用xlrd、xlwt操作excel表格详解
Jan 29 #Python
Python中实现常量(Const)功能
Jan 28 #Python
Python使用random和tertools模块解一些经典概率问题
Jan 28 #Python
Python中的异常处理学习笔记
Jan 28 #Python
Python中集合类型(set)学习小结
Jan 28 #Python
You might like
PHP 批量删除数据的方法分析
2009/10/30 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
js函数调用的方式
2014/05/06 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
python hashlib加密实现代码
2019/10/17 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
写给女生的道歉信
2014/01/14 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
年终工作总结范文2014
2014/11/27 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
个人总结格式范文
2015/03/09 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python