布尔类型
布尔类型是一种数据类型,它的值只有真与假,在Python中用True
和False
来表达。
我们先来IDLE中做一下测试,通过使用内建函数bool()
可以直接给出相应的结果:
>>> bool("假")
True
>>> bool("False") #字符串
True
>>> bool(False)
False
>>> bool("") #双引号中没有内容
False
>>> bool(" ") #输入空格
True
>>> bool(0)
False
>>> bool(0.0)
False
>>> bool(0j)
False
>>> bool(123)
True
分析
- 有朋友可能好奇,什么?明明输入的是
假
和False
为什么返回的还是True
,其实这只是一个小小的障眼法,因为它们有用双引号括起来所以他们是字符串(第一第三行),在字符串中只有空字符(第七行)才会返回False
,即使是输入空格(第九行)也会返回True
。 - 在数字类型中也只有特定的几个数才会返回
False
,其余的都是True
。
通过测试我们发现,只有在一些特定情况下,bool()才会返回False,总结为以下几种:
- 常量
None
和False
0
,0.0
,0j
,Decimal(0)
,Fraction(0, 1)
- 空字符串,空集合、序列等,
''
,()
,[]
,set()
,range(0)
这里面有些对我们来说看着多都很陌生,不过没关系,以后会慢慢接触到的。
布尔运算
布尔类型的运算符有三种分别是:and
,or
,not
,关于这三个逻辑运算符,以及其他常用运算符,我之前有进行过总结,点击这里可以查看。
测试代码:
>>> 2 > 3 and 3 > 2
False
>>> 2 > 1 and 3 > 1
True
>>> 2 > 1 or 3 < 5
True
>>> 1 > 4 or 3 > 2
True
>>> 1 > 3 or 3 > 6
False
>>> not False
True
>>> not 250
False
- 对于
and
运算符来说必须两边的操作数都为True
结果才会返回True
,否则返回False
。 - 对于
or
运算符来说,只要有一个操作数为True
,结果即为True
,否则返回False
。 - 对于
not
运算符来说,就是将True
变为False
,将False
变为True
。
Python中任何对象都能直接进行真值测试(测试该对象的布尔类型值为True
还是False
),当然也可以作为布尔逻辑运算符的作操作数,也可以说任何类型都可以作为布尔逻辑运算符的操作数。
>>> 2 and 4
4
>>> 3 or 5
3
>>> "python" and "C"
'C'
>>> "Hello" or 123
'Hello'
那么为什么会是这样呢?这里就留给大家去思考了,后面我也会重新写一篇文章进行解答。