5.4 逻辑运算符

逻辑运算用于对布尔型变量进行运算,其结果也是布尔型。
true 和 false 就是 布尔值。
运算顺序:先运算左右两边的表达式得出布尔值,再进行逻辑运算。
逻辑运算符有三种:and(与)、or(或)、not(非)。

5.4.1 and 逻辑与

两个为真才为真
体验代码

print(True  and True)
print(True  and False)
print(False and True)
print(False and False)

【终端输出】

True
False
False
False

观察输出结果,发现在进行逻辑与的计算时,只有运算符左右两边的布尔值都为TRUE,结果才为TRUE。
记忆口诀为两个为真才为真

体验代码

print(2>0 and 5>0)
print(2>0 and 5<0)
print(2<0 and 5>0)
print(2<0 and 5<0)

【终端输出】

True
False
False
False

计算顺序:先计算and 左右两边的表达式。
讲解第一行代码:
左边表达式 2 > 0 的布尔值为 TRUE,
右边表达式 5 > 0 的布尔值为 TRUE,
true and true ,左右两边都为真,则第一行代码结果为TRUE。

在这里插入图片描述

5.4.2 or 逻辑或

两个为假才为假
体验代码

print(True  or True)
print(True  or False)
print(False or True)
print(False or False)

【终端输出】

True
True
True
False

观察输出结果,发现在进行逻辑或的计算时,只有运算符左右两边的布尔值都为false,结果才为false。
记忆口诀为两个为假才为假

体验代码

print(2>0 or 5>0)
print(2>0 or 5<0)
print(2<0 or 5>0)
print(2<0 or 5<0)

【终端输出】

True
True
True
False

计算顺序:先计算or 左右两边的表达式。
讲解第一行代码:
左边表达式 2 > 0 的布尔值为 TRUE,
右边表达式 5 > 0 的布尔值为 TRUE,
true or true ,则第一行代码结果为true。
在逻辑或计算中,只有两边的值都为FALSE,结果才为FALSE。

在这里插入图片描述

5.4.3 not 逻辑非

真变假,假变真
体验代码

print(not True)
print(not False)

【终端输出】

False
True

进行逻辑非的计算时,运算符右边的布尔值为true,则输出结果为false,右边的布尔值为false,则输出结果为true。

5.4.4 逻辑运算符的优先级

() >not >and >or
意思是在逻辑的混合运算中,先计算() 内的表达式,在计算not,在计算and,最后计算or。

print(2>0 and 3<0 or 3<0)
print(2>0 or 3<0 and 3<0)
print(('test'=='Test') or 1!=1.0 and 2==2.0)

【终端输出】

False
True
False

请大家自己分析一下上述代码,看结果是否和运行结果一样。
注意:== != 判断的是对象的值是否相等。

5.4.5 总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KvZtpeDB-1645628912423)(…/img/9_运算符%20(1)].png)

逻辑运算用于对布尔型变量进行运算,其结果也是布尔型。
true 和 false 就是 布尔值。
运算顺序:先运算左右两边的表达式得出布尔值,再进行逻辑运算。
逻辑运算符有三种:and(与)、or(或)、not(非)。

5.4.1 and 逻辑与

两个为真才为真
体验代码

print(True  and True)
print(True  and False)
print(False and True)
print(False and False)

【终端输出】

True
False
False
False

观察输出结果,发现在进行逻辑与的计算时,只有运算符左右两边的布尔值都为TRUE,结果才为TRUE。
记忆口诀为两个为真才为真

体验代码

print(2>0 and 5>0)
print(2>0 and 5<0)
print(2<0 and 5>0)
print(2<0 and 5<0)

【终端输出】

True
False
False
False

计算顺序:先计算and 左右两边的表达式。
讲解第一行代码:
左边表达式 2 > 0 的布尔值为 TRUE,
右边表达式 5 > 0 的布尔值为 TRUE,
true and true ,左右两边都为真,则第一行代码结果为TRUE。
在逻辑与计算中,只有两边的值都为true,结果才为true。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d7LOGWUn-1645628907449)(…/img/7_逻辑与.png)]

5.4.2 or 逻辑或

两个为假才为假
体验代码

print(True  or True)
print(True  or False)
print(False or True)
print(False or False)

【终端输出】

True
True
True
False

观察输出结果,发现在进行逻辑或的计算时,只有运算符左右两边的布尔值都为false,结果才为false。
记忆口诀为两个为假才为假

体验代码

print(2>0 or 5>0)
print(2>0 or 5<0)
print(2<0 or 5>0)
print(2<0 or 5<0)

【终端输出】

True
True
True
False

计算顺序:先计算or 左右两边的表达式。
讲解第一行代码:
左边表达式 2 > 0 的布尔值为 TRUE,
右边表达式 5 > 0 的布尔值为 TRUE,
true or true ,则第一行代码结果为true。
在逻辑或计算中,只有两边的值都为FALSE,结果才为FALSE。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wDEe6y0P-1645628907452)(…/img/8_逻辑或.png)]

5.4.3 not 逻辑非

真变假,假变真
体验代码

print(not True)
print(not False)

【终端输出】

False
True

进行逻辑非的计算时,运算符右边的布尔值为true,则输出结果为false,右边的布尔值为false,则输出结果为true。

5.4.4 逻辑运算符的优先级

() >not >and >or
意思是在逻辑的混合运算中,先计算() 内的表达式,在计算not,在计算and,最后计算or。

print(2>0 and 3<0 or 3<0)
print(2>0 or 3<0 and 3<0)
print(('test'=='Test') or 1!=1.0 and 2==2.0)

【终端输出】

False
True
False

请大家自己分析一下上述代码,看结果是否和运行结果一样。
注意:== != 判断的是对象的值是否相等。

5.4.5 总结

在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐