Python 逻辑运算符
逻辑运算符用来根据真值(真 / 假)组合条件,常用于 if、while 等。Python 里有三个关键字:and(与)、or(或)、not(非)。
它们操作的是真值检测意义上的「真假」,不一定是严格的 bool 类型;and / or 还会短路,并可能返回最后一个被求值的操作数(不一定是 True/False)。更多运算符总览见 运算符。
and(逻辑与)
两侧都为真时,整体为真;从左往右计算,左侧为假则不再算右侧(短路)。
python
a = 20
b = 10
if a > 0 and b > 0:
print("a 和 b 都是正数。")输出:
text
a 和 b 都是正数。表达式 x and y:若 x 为假,结果为 x;否则结果为 y。
or(逻辑或)
任一侧为真即可为真;左侧为真则不算右侧(短路)。
python
a = 20
b = -10
if a > 0 or b > 0:
print("至少有一个条件成立")输出:
text
至少有一个条件成立表达式 x or y:若 x 为真,结果为 x;否则结果为 y。
not(逻辑非)
一元运算符,对操作数做真值取反,结果类型为 bool(True 或 False)。
python
a = 50
print(not (a % 4 or a > 0))分析: a % 4 为 50 % 4 == 2,在布尔语境下为真;or 短路,整个 a % 4 or a > 0 为 2(真值意义上的真)。not(...) 得到 False。
输出:
text
False注意括号:若写成 not a % 4 or a > 0,会因优先级不同而得到别的结果(not 优先级高于 or)。
真值与 bool
在条件判断里,None、0、空序列(如 ""、[])等被视为假,其余多数对象为真。需要显式转成 0/1 时用 bool(x)。
与比较运算配合
逻辑运算符常和 >、== 等比较运算一起使用;比较运算见 比较运算符。
小结
| 运算符 | 含义 | 短路 |
|---|---|---|
x and y | 全真才为真(结果为最后求值的操作数) | 左假则停 |
x or y | 有真即为真(结果为最后求值的操作数) | 左真则停 |
not x | 取反,结果为 bool | 无 |
图示(参考)
