前言
本文主要介绍python中的逻辑运算符,主要内容包括逻辑运算符简介、逻辑运算符优先级。
文章目录
- 前言
- 一、逻辑运算符简介
- 1、and(与) 运算
- 2、or(或)运算
- 3、not(非)运算
- 二、逻辑运算符优先级
- 总结
一、逻辑运算符简介
逻辑运算符是用来做逻辑运算, 也就是我们数学中常说的 “与或非”。python中的逻辑运算符有 and(与)、or(或)、not(非)。
1、and(与) 运算
and(与) 运算逻辑表为: x and y ,表示如果 x 为 “假”,则 x and y 返回 x的值, 否则返回 y 的计算值。例如下面代码:
x = 5
y = 10print(x and y)
输出结果:
10
注意:python中的and 跟 C语言中的 逻辑与运算(&&)是有区别的,C语言中 的&& 运算的结果是bool类型,非真即假。而python中的 and 运算结果可以是任何类型,并且返回的值 不是 x 就是 y (运算逻辑表 :x and y)。我们再举一个例子:
x = 5
y = 10print(x>0 and y>0) #这里的 x>0 、y>0 的计算值都是 bool 类型,x>0的计算值为True,所以返回 b>0的值,即True。
输出结果:
True
总结:运算结果的值就是最后一步判断条件的计算值——当x为假时,就能得出 a and b 为假,不再判断y,运算结果为x的值;当x为真时,就再判断y,运算结果为y的值。
2、or(或)运算
or(或) 运算逻辑表为: x or y , 表示如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
x = 5
y = 10print(x or y) # a 的值为True ,能判断出 a or y 的值为 True,所以不再判断y,直接输出 a的值。
输出结果:
5
python中的or 运算跟and 运算一样,运算结果可以是任何类型,并且返回的值 不是 x 就是 y,取决于最后一步判断条件。
3、not(非)运算
not(非) 运算逻辑表为: not x 表示如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
x = 5print(not x)
输出结果:
False
二、逻辑运算符优先级
接下来,我们看下三个运算符混合运用的情况,对于如下代码,代码一:比较not 与 or的优先级
a = True
b = Falseif not b or a:print("not 操作先于 or 操作")
输出结果:
not 操作先于 or 操作
if not b or a: 假如 or的优先级大于not,那 b or a 的结果为True, 则not (a or b )的结果为假,结果不会有打印,所以 能反推出:not的优先级 > or的优先级。
代码二:比较not 与 and 的优先级
a = True
b = Falseif not a and b:print("and 操作先于 not 操作")
else:print("not 操作先于 and 操作")
输出结果:
not 操作先于 and 操作
if not a and b:假如 and的优先级大于not,那 a and b 的结果为False,则 not(a and b)的结果为真,结果打印print(“and 操作先于 not 操作”),我们的输出结果是:not 操作先于 and 操作,所以能反推出 :not的优先级 > and的优先级。
代码三:比较 and 与 or 的优先级
a = True
b = False
c = Falseprint(a or b and c)
输出结果:
True
a or b and c,假如 or 的优先级大于 and的优先级,那 a or b 结果为 True , 则 True and c 结果为 False,所以能反推出 :and的优先级 > or的优先级。
总结
逻辑运算符优先级为 not >and >or。