布尔类型有True和False两种值,但是布尔类型有以下几种运算
与运算and
或运算or
非运算not
在Python中,布尔类型还可以与其他数据类型做and,or和not运算,请看下面代码:
a=True
print a and 'a=T' or 'a=F'
计算结果不是布尔类型,而是字符串'a=T',这是为什么呐
因为Python中把0,空字符串' '和None,看成False,其他的数值和非空字符串都看成True,所以:
True and 'a=T'计算结果是‘a=T’
继续计算'a=T' or 'a=F'计算结果是‘a=T’
and 和 or运算的一条重要法则:短路计算
(1)计算a and b时,
如果a是False,结果必为False,因此返回a,如果a是True,则整个计算的结果取决于b,因此返回b
(2) 计算a or b时,
a时True,返回a,a 是False,结果取决于b,返回b
Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后计算了,直接返回结果