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中的yield函数的用法
Apr 03 Python
python实现DES加密解密方法实例详解
Jun 30 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
Python Learning 列表的更多操作及示例代码
Aug 22 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
python组合无重复三位数的实例
Nov 13 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
Python爬取365好书中小说代码实例
Feb 28 Python
python利用faker库批量生成测试数据
Oct 15 Python
python函数的两种嵌套方法使用
Apr 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之第五天
2006/10/09 PHP
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
js页面跳转常用的几种方式
2010/11/25 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
详解vue 组件
2020/06/11 Javascript
vue实现折线图 可按时间查询
2020/08/21 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python函数参数*args**kwargs用法实例
2013/12/04 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
Python 函数list&read&seek详解
2019/08/28 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
2019/09/05 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
日语专业个人求职信范文
2014/02/02 职场文书
机械工程师岗位职责
2014/06/16 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers