逻辑运算符
逻辑运算符主要用来做一些逻辑运算。
9.1逻辑运算符
逻辑运算符包括:
- not 逻辑非
可以对符号右侧的值进行非运算。
对于布尔值,非运算会对其进行取反操作。true变false,false变true。
对于非布尔值,会先将其转换成布尔值,再进行取反。
- and 逻辑与
可以对符号两侧的值进行与运算。
只有两边的值都为true时,结果才返回true,只要有一个false,就会返回false。所以与运算找false,找到就返回false。
Python中的与运算是短路的与,如果第一个值是false,就不再看第二个值。
- or 逻辑或
可以对符号两侧的值进行或运算。
或运算,两个值中只要有一个true就会返回true。
所以,或运算是找true,只要有一个true,就会返回true。
在Python中,或运算是短路的或,如果第一个值是true,则不再看第二个值。
练习:
1.尝试对布尔值进行三种逻辑运算。
2.尝试对非布尔值进行三种逻辑运算,并观察返回结果。
9.2非布尔值的逻辑运算符
- 非布尔值的非运算
非布尔值做逻辑运算的时候先转换成布尔值:空性的是false,其他都是true。
非运算就直接取反。true变false。false变true。
- 非布尔值的与或运算
非布尔值转换成布尔值的时候:空性的是false,其他都是true。
当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值。那么返回哪个原值呢?
与运算是找false:如果第一个值是false,则直接返回第一个值,就不看第二个值;如果第一个值是true,第二个也是true的话,找不到false,则返回第二个值;第二个是false的话,则返回该false的值,也就是返回第二个值。
或运算是找true:如果第一个值是true,就不看第二个值了,直接返回第一个值;如果第一个值是false,则判断第二个值,第二个值为true,即返回,若第二个值为false,找不到true,则返回最后一个值,即第二个值。
第十节:逻辑运算符