Python 程序设计讲义(16):Python 的数据运算——逻辑运算

逻辑运算是对布尔值进行运算,运算结果仍然是一个布尔值。Python 提供三种逻辑运算:逻辑与(and)、逻辑或(or)、逻辑非(not)。

一、逻辑与运算

逻辑与运算使用逻辑运算符 and,运算规则如下表所示:

x y 运算结果
True True True
True False False
False True False
False False False

逻辑与运算只有两个值都为真,结果为真,只要有一个为假,则结果就为假。

例如:

a=3==3 and 5>=4
b=4<3 and 3>1
print(a)
print(b) 

运算结果为:
True
False

二、逻辑或运算

逻辑或运算使用逻辑运算符 or,运算规则如下表所示:

x y 运算结果
True True True
True False True
False True True
False False False

逻辑或运算只要有一个值为真,结果就为真,只有两个值都为假,结果才为假。

例如:

a=3>3 and 5<4
b=4<3 or 3>1
print(a)
print(b)

运算结果为:
False
True

三、逻辑非运算

逻辑非表示取反,使用逻辑运算符 not,运算规则如下表所示:

x 运算结果
True False
False True

逻辑非运算是对逻辑取反,如果 x 为真,结果为假,x 为假,则结果为真。

例如:

a=not 3>2
b=not 2==3
print(a)
print(b)

运算结果为:
False
True

四、逻辑运算符的优先级

如果运算中存在多个逻辑运算符,会根据运算符的优先级从高到低依次进行运算。逻辑运算符的优先级从高到低如下表所示:

逻辑运算符 说明
not 逻辑非
and 逻辑与
or 逻辑或

可以使用括号改变逻辑运算符的优先级。

例如:

a=6>10 or 3==3 and not 3>2  #判断的顺序:not-->and-->or
b=(6>10 or 3==3) and not 3>2#判断的顺序:or-->not-->and
print(a)
print(b)

运算结果为:
True
False

五、逻辑运算的短路原则

当多个逻辑运算符连用时,正常情况下,会根据运算符的优先级依次进行计算,得到结果。但是,当表达式的前边部分已经能够确定结果时,后面的部分就没有运算的必要了。为了减少运算量,会使用短路原则进行逻辑运算。

1、逻辑或运算的短路原则

逻辑或运算只要有一个数据为真,结果就为真。逻辑或运算的短路原则是指:当 or 的第一个条件为真时,那么后面的条件就不再进行判断,运算结果直接为真。

例如:

#由于第一个条件为真,不管后面的条件是否为真,结果都是真
a=3==3 or 6>10 and not 3>2
print(a)

运算结果为:
True
2、逻辑与运算的短路原则

逻辑与运算只要有一个数据为假,结果就为假。逻辑与运算的短路原则是指:当 and 的第一个条件为假时,那么后面的条件就不再进行判断,运算结果直接为假。

例如:

#由于第一个条件为假,不管后面的条件是否为真,结果都是假
a=3==5 and 6<10 and not 3>2
print(a)

运算结果为:
False
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。