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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
Python实现类似jQuery使用中的链式调用的示例
Jun 16 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
python中numpy基础学习及进行数组和矢量计算
Feb 12 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 Python
Django框架的使用教程路由请求响应的方法
Jul 03 Python
Django认证系统实现的web页面实现代码
Aug 12 Python
pycharm通过anaconda安装pyqt5的教程
Mar 24 Python
Python socket服务常用操作代码实例
Jun 22 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
python设置表格边框的具体方法
Jul 17 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循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
JS实现留言板功能
2017/06/17 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python模拟登陆实现代码
2017/06/14 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
WiFi云数码相框:Nixplay
2018/07/05 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
学前教育专业毕业生自荐信
2013/10/03 职场文书
应届毕业生求职信范文分享
2013/12/26 职场文书
《燕子》教学反思
2014/02/18 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
库房保管员岗位职责
2014/04/07 职场文书
校园演讲稿汇总
2014/05/21 职场文书
第二次离婚起诉书
2015/05/18 职场文书
保留意见审计报告
2015/06/05 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
教师节表彰会主持词
2015/07/06 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
element多个表单校验的实现
2021/05/27 Javascript