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开发之thread线程基础实例入门
Nov 11 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
Python编程实现粒子群算法(PSO)详解
Nov 13 Python
Python处理文本换行符实例代码
Feb 03 Python
python3实现域名查询和whois查询功能
Jun 21 Python
举例讲解Python常用模块
Mar 08 Python
使用TensorFlow搭建一个全连接神经网络教程
Feb 06 Python
keras.layer.input()用法说明
Jun 16 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
Django多数据库联用实现方法解析
Nov 12 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 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正则匹配汉字的方法介绍
2013/04/25 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
angular2使用简单介绍
2016/03/01 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
vue axios用法教程详解
2017/07/23 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
python函数装饰器用法实例详解
2015/06/04 Python
Python 加密的实例详解
2017/10/09 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
wxPython色环电阻计算器
2019/11/18 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
网络程序员自荐信
2014/01/25 职场文书
网络技术专业推荐信
2014/02/20 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
观看建国大业观后感
2015/06/01 职场文书
小鞋子观后感
2015/06/05 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python