逻辑运算符对布尔型变量进行运算,其结果也是布尔型。
如下表所示:
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
not | 逻辑非 | not a | a为True时,值为False,a为False时,值为True |
and | 逻辑与 | a and b | a、b全为True时,计算机结果为True,否则为False |
or | 逻辑或 | a or b | a、b全为False时,计算结果为False,否则为True |
Python 中的“逻辑与”和“逻辑或”都采用“短路”设计,例如 a and b
,如果 a
为 False
,则不计算 b
(因为不论 b
为何值,“与”操作的结果都为 False
);而对于 a or b
,如果 a
为 True
,则不计算 b
(因为不论 b
为何值,“或”操作的结果都为 True
)。
这种短路形式的设计,使它们在计算过程中就像电路短路一样采用最优化的计算方式,从而提高效率。
例如:
if a > b or i == 1:
print(" 或运算为 真 ")
else:
print(" 或运算为 假 ")
if a < b and i == 1:
print(" 与运算为 真 ")
else:
print(" 与运算为 假 ")
def f1():
return a > b
def f2():
print("--f2--")
return a == b
print(f1() or f2())
执行结果:
或运算为 真
与运算为 假
True
上述代码第①行和第②行定义的两个函数返回的是布尔值。
代码第③行进行“或”运算,由于短路计算,f1函数返回True之后,不再调用f2函数。