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获取beautifulphoto随机某图片代码实例
Dec 18 Python
使用Python的Twisted框架实现一个简单的服务器
Apr 16 Python
python在控制台输出进度条的方法
Jun 20 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
基于Python的PIL库学习详解
May 10 Python
Python unittest框架操作实例解析
Apr 13 Python
Jupyter Notebook折叠输出的内容实例
Apr 22 Python
django模板获取list中指定索引的值方式
May 14 Python
什么是python类属性
Jun 10 Python
如何利用Python动态模拟太阳系运转
Sep 04 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
Zend引擎的发展 [15]
2006/10/09 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
PHP attributes()函数讲解
2019/02/03 PHP
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
2007/04/20 Javascript
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
JS打印组合功能
2016/08/04 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
利用python发送和接收邮件
2016/09/27 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
PyQt5每天必学之单行文本框
2018/04/19 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
python实现四人制扑克牌游戏
2020/04/22 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
12月小学生校园广播稿
2014/02/04 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
学校火灾防控方案
2014/06/09 职场文书
2014年文员工作总结
2014/11/18 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
公司员工培训管理制度
2015/08/04 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
Django Paginator分页器的使用示例
2021/06/23 Python