bool运算符有一个比较优秀的特征,就是只做有效运算
and 运算符
例如表达式 x and y,
只有当 x 和 y 都为真的时候,表达式值才为真;反之,若x为假,则立刻返回 假,y的值不在计算;
若x为真,y为假时,这个时候就会计算到y,然后在返回 假
下面一个例子可以看出是这种关系:
def A():
print("A function")
return False
def B():
print("B function")
return True
def C():
print("C function")
return False
def D():
print("D function")
return True
print(A() and B())
print("*"*20)
print(B() and A())
print("*"*20)
print(C() and A())
print("*"*20)
print(D() and B())
输出结果:
A function
False
********************
B function
A function
False
********************
C function
False
********************
D function
B function
True
or 运算符
例如 x or y, or和and的运算符和 and相反,
当x为真的时候,直接返回 真; 当x 为假时,要检查 y, 根据y的情况返回真假,y为真时,返回真;y为假时返回假
可以根据下面的例子查看:
def A():
print("A function")
return False
def B():
print("B function")
return True
def C():
print("C function")
return False
def D():
print("D function")
return True
print(A() or B())
print("*"*20)
print(B() or C())
print("*"*20)
print(A() or C())
print("*"*20)
print(B() or D())
输出结果:
A function
B function
True
********************
B function
True
********************
A function
C function
False
********************
B function
True