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 相关文章推荐
Python3使用requests登录人人影视网站的方法
May 11 Python
对Python中9种生成新对象的方法总结
May 23 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
Python可变和不可变、类的私有属性实例分析
May 31 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
django最快程序开发流程详解
Jul 19 Python
Python 共享变量加锁、释放详解
Aug 28 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
如何理解Python中的变量
Jun 01 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
如何用Python 加密文件
Sep 10 Python
Python读取ini配置文件传参的简单示例
Jan 05 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 IF ELSE简化/三元一次式的使用
2011/08/22 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
FLASH 广告之外的链接
2008/12/16 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
node.js 中国天气预报 简单实现
2016/06/06 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
Vuex的各个模块封装的实现
2020/06/05 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
Python3.x中自定义比较函数
2015/04/24 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
python list元素为tuple时的排序方法
2018/04/18 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python实现两个文件夹的同步
2019/08/29 Python
python元组的概念知识点
2019/11/19 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
python3.7添加dlib模块的方法
2020/07/01 Python
Python实现数字的格式化输出
2020/08/01 Python
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
四下基层实施方案
2014/03/28 职场文书
指导教师评语
2014/04/26 职场文书
离职感谢信怎么写
2015/01/22 职场文书
颐和园导游词400字
2015/01/30 职场文书
地道战观后感
2015/06/04 职场文书
浅析Python中的套接字编程
2021/06/22 Python