Python 中的逻辑运算符用于组合和操作布尔值,通常用于条件语句和循环中以进行复杂的条件判断。
- 逻辑与运算符:用于检查两个条件是否都为 True。
- 逻辑或运算符:用于检查两个条件中至少有一个为 True。
- 逻辑非运算符:用于取反一个条件的值。
运算符 | 描述 | 语法 |
---|---|---|
和 | 逻辑与:如果两个操作数都为真,则为真 | x 和 y |
或者 | 逻辑或:如果任一操作数为真,则为真 | x 或 y |
不是 | 逻辑非:如果操作数为假,则为真 | 不是x |
X 和 Y 值的所有组合的真值表。
逻辑与运算符
如果两个操作数都为 True,则逻辑运算符返回 True,否则返回 False。
示例#1:
# Python程序演示
# 逻辑与运算符
a = 10
b = 10
c = -10
if a > 0 and b > 0:
print("这些数字大于0")
if a > 0 and b > 0 and c > 0:
print("这些数字大于0")
else:
print("至少有一个数字不大于0")
输出:
这些数字大于0
至少有一个数字不大于0
示例#2:
# Python程序演示
# 逻辑与运算符
a = 10
b = 12
c = 0
if a and b and c:
print("所有数字的布尔值都为True")
else:
print("至少有一个数字的布尔值为False")
输出:
至少有一个数字的布尔值为False
注意:如果使用 and 运算符时第一个表达式的计算结果为 false,则不会计算后面的表达式。
逻辑或运算符
如果任一操作数为 True,则逻辑或运算符返回 True。
示例#1:
# Python程序演示
# 逻辑或运算符
a = 10
b = -10
c = 0
if a > 0 or b > 0:
print("其中一个数字大于0")
else:
print("没有数字大于0")
if b > 0 or c > 0:
print("其中一个数字大于0")
else:
print("没有数字大于0")
输出:
其中一个数字大于0
没有数字大于0
示例#2:
# Python程序演示
# 逻辑或运算符
a = 10
b = 12
c = 0
if a or b or c:
print("至少有一个数字的布尔值为True")
else:
print("所有数字的布尔值都为False")
输出:
至少有一个数字的布尔值为True
注意:如果使用 or 运算符时第一个表达式的计算结果为 True,则不会计算后面的表达式。
逻辑非运算符
逻辑非运算符使用单个布尔值。如果布尔值为 True,则返回 False,反之亦然。
示例#1:
# Python程序演示
# 逻辑非运算符
a = 10
if not a:
print("a 的布尔值为True")
if not (a % 3 == 0 or a % 5 == 0):
print("10 不能被3或5整除")
else:
print("10 能被3或5整除")
输出:
10 能被3或5整除
逻辑运算符的求值顺序
在有多个运算符的情况下,Python 始终从左到右计算表达式。这可以通过下面的例子来验证。
# Python程序演示
# 逻辑运算符的求值顺序
def order(x):
print("方法调用值:", x)
return True if x > 0 else False
a = order
b = order
c = order
if a(-1) or b(5) or c(10):
print("至少有一个数字是正数")
输出:
方法调用值:-1
方法调用值:5
至少有一个数字是正数