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对象体系深入分析
Oct 28 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
Python3 queue队列模块详细介绍
Jan 05 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
对pandas进行数据预处理的实例讲解
Apr 20 Python
Python学习小技巧总结
Jun 10 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
pandas 空数据处理方法详解
Nov 02 Python
python实现在线翻译功能
Mar 03 Python
python nohup 实现远程运行不宕机操作
Apr 16 Python
如何在sublime编辑器中安装python
May 20 Python
Python机器学习之PCA降维算法详解
May 19 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
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
深入理解vue中的$set
2017/06/01 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
实例讲解v-if和v-show的区别
2019/01/31 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
python实现在pickling的时候压缩的方法
2014/09/25 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
numpy数组拼接简单示例
2017/12/15 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python生成一个迭代器的实操方法
2019/06/18 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
Python分类测试代码实例汇总
2020/07/23 Python
T3官网:头发造型工具
2019/12/26 全球购物
南京某公司笔试题
2013/01/27 面试题
优秀学生获奖感言
2014/02/15 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
部队万能检讨书
2014/02/20 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
婚礼庆典答谢词
2015/01/20 职场文书