当前位置: 首页 > news >正文

5.4 Python 逻辑运算符

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 总结

在这里插入图片描述

相关文章:

  • 矽肺的 柱状图 比例图 bar图
  • 6.1 Python 单分支结构 if语句
  • 把subset_data的子集重新放到总群allmerge中找marker基因 findallmarkers
  • 6.2 python 多分支结构if...elif...else 语句
  • 6.3 Python if语句 条件判断嵌套
  • 细胞打分 addmodule addmodule对所有细胞进行循环评分
  • 6.4 序列及range函数
  • 5_addmodule空转spatial空转打分模块inflammatory炎症评分空转炎症评分 addmodule seurat
  • 6.5 python while 循环
  • 6.6 Python for 循环
  • 批量读取文件夹下所有excel文件里的内容,放入列表 把所有不管行列名如何excel合并成一个大的excel 批量读取excel,批量合并excel
  • 6.7 continue 和 break 语句
  • 批量多个excel合并成一个大的excel
  • 7.1 python 自定义函数的创建及调用
  • 7.2 Python return 语句
  • “大数据应用场景”之隔壁老王(连载四)
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • IDEA 插件开发入门教程
  • JS专题之继承
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • PHP 小技巧
  • php面试题 汇集2
  • React+TypeScript入门
  • Terraform入门 - 1. 安装Terraform
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 系统认识JavaScript正则表达式
  • 一道闭包题引发的思考
  • 在Mac OS X上安装 Ruby运行环境
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 飞书APP集成平台-数字化落地
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #Linux(make工具和makefile文件以及makefile语法)
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • %check_box% in rails :coditions={:has_many , :through}
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (六)激光线扫描-三维重建
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)linux文件内容查看
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)Unity3DUnity3D在android下调试
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET Core引入性能分析引导优化
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET中使用Redis (二)
  • .pop ----remove 删除
  • [.net]官方水晶报表的使用以演示下载
  • [20180129]bash显示path环境变量.txt
  • [2021 蓝帽杯] One Pointer PHP
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用