Python逻辑运算符

Python 中的逻辑运算符用于组合和操作布尔值,通常用于条件语句和循环中以进行复杂的条件判断。

  • 逻辑与运算符:用于检查两个条件是否都为 True。
  • 逻辑或运算符:用于检查两个条件中至少有一个为 True。
  • 逻辑非运算符:用于取反一个条件的值。
运算符描述语法
逻辑与:如果两个操作数都为真,则为真x 和 y
或者逻辑或:如果任一操作数为真,则为真x 或 y
不是逻辑非:如果操作数为假,则为真不是x

X 和 Y 值的所有组合的真值表。

Python逻辑运算符

逻辑与运算符

如果两个操作数都为 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

逻辑或运算符

如果任一操作数为 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

逻辑非运算符

逻辑非运算符使用单个布尔值。如果布尔值为 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
至少有一个数字是正数