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 Deque 模块使用详解
Jul 04 Python
Python实现向QQ群成员自动发邮件的方法
Nov 19 Python
python实现数组插入新元素的方法
May 22 Python
python中返回矩阵的行列方法
Apr 04 Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
May 27 Python
Django用户认证系统 组与权限解析
Aug 02 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
给ubuntu18安装python3.7的详细教程
Jun 08 Python
Python中的With语句的使用及原理
Jul 29 Python
python将下载到本地m3u8视频合成MP4的代码详解
Nov 24 Python
python中time包实例详解
Feb 02 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 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
javascript闭包(Closure)用法实例简析
2015/11/30 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
python3中int(整型)的使用教程
2017/03/23 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
Python for循环中的陷阱详解
2018/07/13 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
RIP版本1跟版本2的区别
2013/12/30 面试题
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
学生出入校管理制度
2014/01/16 职场文书
幼儿园教研活动总结
2014/04/30 职场文书
物理学专业求职信
2014/07/04 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
学习十八大标语
2014/10/09 职场文书
英语复习计划
2015/01/19 职场文书
保安辞职信范文
2015/02/28 职场文书
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript