请选择 进入手机版 | 继续访问电脑版

fpga论坛|fpga设计论坛

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 45|回复: 4

python学习:Python的Boolean操作

[复制链接]
晓灰灰 发表于 2018-12-6 16:13:05 | 显示全部楼层 |阅读模式
大家好,又到了每日学习的时间了,最近博主在和python打交道,今天我们来聊一聊 Python的Boolean操作。       

在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
 楼主| 晓灰灰 发表于 2018-12-6 16:13:16 | 显示全部楼层
python学习:Python的Boolean操作
zhangyukun 发表于 2018-12-7 09:48:05 | 显示全部楼层
python学习:Python的Boolean操作
 楼主| 晓灰灰 发表于 2018-12-7 11:47:47 | 显示全部楼层
python学习:Python的Boolean操作
 楼主| 晓灰灰 发表于 4 天前 | 显示全部楼层
python学习:Python的Boolean操作
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

QQ|小黑屋|手机版|Archiver|FPGA论坛 ( 京ICP备10035964号  

GMT+8, 2018-12-16 12:34 , Processed in 0.078011 second(s), 24 queries .

至芯科技 Powered by Discuz X3.2

© 2001-2014 Comsenz Inc.

快速回复 返回顶部 返回列表