Python 程序设计讲义(16):Python 的数据运算——逻辑运算
·
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
所有评论(0)