1. 布尔操作符
3个布尔操作符(and、or和not)用于比较布尔值。
像比较操作符一样,它们将这些表达式求值为一个布尔值。
让我们仔细看看这些操作符,从and操作符开始。
二元布尔操作符
and和or操作符总是接收两个布尔值(或表达式),所以它们被认为是”二元”操作符。
如果两个布尔值都为True,and操作符就将表达式求值为True;否则求值为False。
在交互环境中输入某个使用and的表达式:
Python
>>> True and True
True
>>> True and False
False
另一方面,只要有一个布尔值为真,or操作符就将表达式求值为True。
如果都是False则求值为False:
Python
>>> True or True
True
>>> False or False
False
not操作符
与and和or不同,not操作符只作用于一个布尔值,这使它成为”一元”操作符。
not操作符求值为相反的布尔值:
Python
>>> not True
False
>>> not not not not True
True
就像在说话和写作中使用双重否定一样,你可以嵌套not操作符,虽然在真正的程序中并不经常这样做。
2. 混合布尔和比较操作符
既然比较操作符求值为布尔值,那么就可以和布尔值操作符一起在表达式中使用。
and、or和not操作符称为布尔操作符是因为它们总是操作布尔值。
虽然像4<6这样的表达式不是布尔值,但是可以求值为布尔值。
在交互环境中,尝试输入一些使用比较操作符的布尔表达式:
Python
>>> (4<5)and(5<6)
True
>>> (4<5)and(9<6)
False
>>> (1==2)or(2==2)
True
计算机将先求值左边的表达式,然后求值右边的表达式。
得到两个布尔值后,它又将整个表达式再求值为一个布尔值。
也可以在一个表达式中使用多个布尔操作符,与比较操作符一起使用:
Python
>>> 2+2 == 4 and not 2+2 == 5 and 2*2 == 2+2
True
和算术操作符一样,布尔操作符也有操作顺序。
在所有算术和比较操作符求值后,Python先求值not操作符,然后求值and操作符,最后求值or操作符。