在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

转载于:https://www.cnblogs.com/frydsh/archive/2012/07/11/2586177.html

Python的Boolean操作相关推荐

  1. Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8

    我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...

  2. Python 炫技操作:合并字典的七种方法

    来源 | Python编程时光(ID: Cool-Python) Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的.在这些人的眼里,能够写出那些一般开发者看 ...

  3. Python OpenCV像素操作

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 Python OpenCV像素操作 环 ...

  4. python列表字典操作_Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

  5. python 实现卷积操作

    python实现卷积操作 调用tf.nn.conv2d()实现卷积 自己实现卷积函数 我们知道,tensorflow里面自带卷积函数,tf.nn.conv2d()就可以实现相关功能,本文主要是自己实现 ...

  6. python列表按照指定顺序排序-Python常见排序操作示例【字典、列表、指定元素等】...

    本文实例讲述了Python常见排序操作.分享给大家供大家参考,具体如下: 字典排序 按value排序 d1 = {"name":"python","b ...

  7. python界面设置-PYTHON图形化操作界面的编程七__创建菜单

    PYTHON图形化操作界面的编程七__创建菜单 十八.创建菜单 1.水平菜单的创建 创建菜单需要多条语句,所以这里通过实例来说明水平菜单的创建方法: 下面的语句可以在窗口中添加水平菜单,其中前四行语句 ...

  8. python与excel做数据可视化-Python的Excel操作及数据可视化

    Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...

  9. python切片语法-Python字符串切片操作知识详解

    python 中关于字符串切片的一个问题 aa[0:6] 表示取 第0,1,2,3,4,5 位的数据 所以是6个 123456 aa[:-1] 表示取开始到倒数第二位的数据 所以也是123456 就像 ...

最新文章

  1. laravel中migrate的使用
  2. Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser
  3. 使用JavaConfig的SpringMVC4 + Spring Data JPA + SpringSecurity配置
  4. 程序员养生(01) -- 心态
  5. 2013中国微信公众平台用户研究报告
  6. Mixgo CE初体验
  7. 微软windows10易升_微软官网下载与安装windows10系统的操作步骤
  8. 如何恢复电脑中的CHK文件?
  9. ecshop判断是手机访问还是web访问
  10. 资产监测设备帮助提升莴苣养殖的产量
  11. 小标题 html,论文的小标题格式
  12. docker之旅,附带实例脚本
  13. Filter过滤器基本内容
  14. 使用nginx模拟反向代理
  15. 使用Termux在安卓手机上搭建本地Git服务器
  16. 视频插帧—学习笔记(算法+配置+云服务+Google-Colab)
  17. SQL Developer 19.2.1下载安装
  18. 简谈 Intel altera 和 Xilinx 的 FPGA 区别
  19. shell 函数详解
  20. H.264视频中SPS/PPS缺失时实现补帧

热门文章

  1. centos选择php7 作为默认版本_树莓派下安装Nginx+Php7.3 搭建Web服务器
  2. 推荐系统组队学习——协同过滤
  3. AI还原历史真相,背后的原理竟然这么简单!
  4. 卧槽!这个价值百万的Github开源项目绝对要火!涵盖OCR、目标检测,NLP,语音合成多方向...
  5. SGD、Adam优化器
  6. 微型计算机原理IMUL指令,微机原理与系统设计实验
  7. python数字运算程序_python03 一些简单的数字运算
  8. python编程--通过单纯形法和scipy库实现线性规划以及通过拉格朗日来求解非线性
  9. [转载]Qt之模型/视图(实时更新数据)_vortex_新浪博客
  10. 进阶~Qt程序启动画面