在python中,布尔值有且仅有两个:True和False(注意首字母要大写)。
布尔类型之间的运算:
一共三种:or(或运算)、and(与运算)、not(非运算),这些运算和C语言中的逻辑运算规则是一致的。
布尔类型与其他数据类型之间的运算:
在进行and和or运算时要遵循一条重要法则:短路计算。
a and b:若a是False,根据与运算法则,整个计算结果必定为 True,故输出a ;若a是True,计算结果结果取决于b,故输出b。
a or b:若a是True,根据或运算法则,整个计算结果必定为 True,故输出a ;若a是False,计算结果结果取决于b,故输出b。
在Python中,0、空字符串 ‘’ 和None被编译器看成 False,其他数值和**非空字符串’’**都被看成 True。
举例子:
a = True;
print a and 'a = F' or 'a = T'
首先要知道,非空字符串在python看来都是True,即 ‘a = F’ 和 ‘a = T’ 都是True,接着看计算过程:
- 先计算a and‘a = F’,因为a=True,根据短路计算知,输出为‘a = F’。
- 再计算‘a = F’ or ‘a = T’,因为‘a = F’是True,根据短路计算知,输出为‘a = F’。