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实现方法
Nov 18 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
Python 处理数据的实例详解
Aug 10 Python
Python字典及字典基本操作方法详解
Jan 30 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
numpy.ndarray 实现对特定行或列取值
Dec 05 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
python 用struct模块解决黏包问题
Nov 07 Python
Python descriptor(描述符)的实现
Nov 15 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 上传文件的方法(类)
2009/07/30 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
PHPThumb图片处理实例
2014/05/03 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
降低PHP Redis内存占用
2017/03/23 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
django如何连接已存在数据的数据库
2018/08/14 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
联想英国官网:Lenovo英国
2019/07/17 全球购物
教师师德承诺书
2014/03/26 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
2014年卫生工作总结
2014/11/27 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
上下班时间调整通知
2015/04/23 职场文书
学校体育节班级口号
2015/12/25 职场文书
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript