Python之布尔(逻辑)运算符:and、or、not

这是《Python入门经典以解决计算问题为导向的Python编程实践》65-73页的内容,是对上一篇内容的补充,主要讲了布尔运算符。

深入控制语句

  • 1、布尔变量
  • 2、关系运算符
  • 3、布尔运算符(逻辑运算符)
  • 4、优先级
  • 自测练习

1、布尔变量

布尔值:True(真)、Flase(假)
注意:首字母一定要大写

由于计算机硬件只能存储1和0,因此布尔值True另存为1,False另存为0。更一般地,认为零值对象是False,认为任何非零值对象是True。此外,认为任何空对象(例如空字符串)都是 False。

2、关系运算符

布尔表达式有关系运算符组成,其运算结果为真或假。
要注意“=”是赋值运算符,“==”才是等于运算符。
在这里插入图片描述
关系运算符使用时避免两种不同类型的比较。

在Python中,实际上存在两种不同的相等:。
(1)两个不同的名字关联的对象,具有相同的值。如
a=2 b=2 那么a=b
可以使用“ == ”来检验是否有相同的值

(2)两个不同的名字与同一个对象(即具有相同ID的对象)关联。
a=2 b=a 那么a和b关联同一个对象,只是名字不同,所以值是相等的。
可以使用“is”来检验是否关联同一个对象。
在这里插入图片描述
浮点数的相等:
浮点数是实数的近似值。在计算时,有可能发生四舍五入的情况。
以下例子中,两个式子从数学角度看是相等的,但在Python中是不相等的。
在这里插入图片描述
这里要判断浮点数是否相等,就要检查他们的差值是不是非常小。如下图。差值足够小,就判定两个浮点数是相等的。
在这里插入图片描述
关系运算符链
在Python中,关系表达式链和数学中的计算方式相同。(许多编程语言不是)
例如:a大于或等于0且小于等于5,可以直接写成:
0<=a<=5
。如果a=3,结果为True。如果a=6,结果为Flase。

3、布尔运算符(逻辑运算符)

布尔运算符有:and or not
相当于数学中的与、或、非
(1)p and q
特点:需要两个都是真的时候才是真的,否则为假。
(一假即假)

pqp and q

(2)p or q
特点:两个值只要有一个是真的就是真的。
(一真即真)

pqp or q

(3)not q
特点:得到原来的值的相反值

qq

结合布尔表达式和布尔运算符:

a=5
(0<=a)  and (a<=5)
(0<=5)  and (5<=5)
True    and  TrueTrue
a=3
(a>2)  or (a>5)
(3>2)  or (3>5)
True   or  FlaseTrue

and的运算优先级高于or

  True and False or True and Flase
(True and False) or (True and Flase)Flase  or   FlaseFlase

4、优先级

运算符说明
()括号(最高级)
**幂运算
+x,-x正负
* / // %乘 除 整除 求余
+ -加、减
< <= > >= == !=比较运算符
not x
and
or

自测练习

在这里插入图片描述
在这里插入图片描述
【参考答案】
(a)①1②2③10④20
(b)①0②0③20④20
(c)
当两个数都和10相差5的n倍,且第一个数大于第二个数时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/396848.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js是什么?如何安装

目录 一、前言 1、JavaScript语言-----前端开发 2、JavaScript语言-----后端开发 总结&#xff1a;如果我们写了一段 js 代码&#xff0c;把他放到浏览器中执行&#xff0c;是在做前端开发&#xff1b;如果放在Node.js下运行&#xff0c;是在做后端开发。 二、安装 1、打开…

如何学习一门编程语言?

“好读书&#xff0c;不求甚解&#xff1b;每有会意&#xff0c;便欣然忘食。” 如何学习一门编程语言&#xff1f; 如何学习一门编程语言&#xff1f;1.做好笔记2.保证充足的学习时间和练习时间。不能超过三天断学。会遗忘和变得懒散。明确学习的目标 3.学习顺序进入基础部分不…

string详解(1)

1.C语言中的字符串 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0c;而且底层空间需要用户自己管理&…

地接侠小程序(Taro)兼容IOS系统Bug解决(redux持久化不成功、整个页面会拖动)

在写地接侠小程序的时候就是有考虑过兼容问题的&#xff0c;但是在写的过程中并没有用苹果手机进行调式&#xff0c;一直都是用的自己的安卓手机&#xff0c;一直都是没有问题的&#xff0c;但是毕竟项目需要上线&#xff0c;于是在上线前用苹果手机测试果然出现了预想中的问题…

确保线程安全:深入理解.Net开发中 `Control.InvokeRequired` 属性

1. 前言 在 .NET 开发中&#xff0c;特别是在 Windows 窗体应用程序中&#xff0c;多线程编程是一个常见的需求。为了确保界面的稳定性和响应性&#xff0c;需要掌握如何在不同线程之间安全地进行操作。在本文中&#xff0c;我们将深入探讨 Control.InvokeRequired 属性&#x…

Windows--WSL2--Ubuntuon--Docker

编写目的&#xff1a; 在Windows上安装Docker&#xff0c;用Docker安装Gitlab、Jenkins等软件。 文章记录一下Windows上安装Docker的过程。 参考文档&#xff1a; 旧版 WSL 的手动安装步骤 | Microsoft Learn 下面用"参考文档"代替 目录 第一步&#xff1a;启…

java实现将数据分别写入excel和word里面,并将这2个文件压缩进行下载,vue调用接口进行下载

数据导入word和excel并通过vue调用接口下载 1、后端接口开发1.1、通过EasyExcel将数据写入excel里面1.2、设置word模板,通过 WordExportUtil.exportWord07将数据写入word里面1.3、对上面生成的word和excel进行压缩1.4 下载zip文件2、前端代码开发2.1、前端 Axios 配置2.2、 AP…

mysql字符编码利用技巧(三字节和四字节)

目录 一、研究代码 1.1 总结&#xff1a; 二、第二个问题 2.1解答 三、第三个问题 3.1解答 一、研究代码 <?php $mysqli new mysqli("localhost", "root", "abc123", "cat");/* check connection */ if ($mysqli->conne…

Figure 02 机器人发布:未来AI的巅峰还是泡沫中的救命稻草?

引言 近日&#xff0c;Figure AI 公司发布了其最新的机器人产品 Figure 02&#xff0c;引发了广泛关注。作为 Figure AI 的第二代人形机器人&#xff0c;Figure 02 的推出引发了关于它是否是“地表最强”机器人的讨论。同时&#xff0c;由于 OpenAI 的技术支持&#xff0c;这款…

数据结构--第七天

递归 -递归的概念 递归其实就是一种解决问题的办法&#xff0c;在C语言中&#xff1a;递归就是函数自己调用自己 -递归的思想 递归的思考方式就是把大事化小的过程 递归的递就是递推的意思&#xff0c;归就是回归的意思 &#xff08;递归是少量的代码完成大量的运算&#xff09…

【Windows】还原Win11记事本定位,禁用多标签,每次使用新窗口打开(安心做好最简单的记事本)

问题 每次打开都是新的标签页&#xff0c;一个文件如果在近期打开多次&#xff0c;晕了&#xff0c;到底哪个才是最新版&#xff1f;&#xff1f;&#xff1f; 解决办法 打开记事本设置 设置为在新窗口打开链接。

异步编程(Promise详解)

目录 异步编程 回调函数 回调地狱 Promise 基本概念 Promise的特点 1.Promise是一种构造函数 2.Promise接收函数创建实例 3.Promise对象有三种状态 4.Promise状态转变不可逆 5.Promise 实例创建即执行 6.Promise可注册处理函数 7.Promise支持链式调用 Promise的静…

Qt编译错误: error: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set

方法一&#xff1a;清空构建目录 清空当前目录的多余文件即可&#xff0c;具体操作如下 一个正常的Qt项目刚被创建且没有编译时是这样的 一个main文件&#xff0c;一个pro文件&#xff0c;一个user文件&#xff0c;一个头文件(.h)&#xff0c;和一个源文件(.cpp)&#xff0c;一…

Java并发—ReetrantLock详解及应用

目录 一、ReetrantLock的特性 1、非阻塞获取锁 2、带超时的锁获取: 3、锁的公平性 4、锁的可中断性 5、Condition条件变量 6、锁的可重入性 可重入锁 不可重入锁 7、性能优化 二、ReentrantLock和Synchronized的区别 1、语法和使用方式 2、锁的获取和释放 3、高级…

手机卡换了上网的ip会改变吗

在数字化时代&#xff0c;互联网已成为我们日常生活不可或缺的一部分。无论是工作、学习还是娱乐&#xff0c;我们都离不开网络的支持。而每当涉及到网络连接&#xff0c;IP地址这一概念便显得尤为重要。IP地址不仅是设备在网络中的唯一标识&#xff0c;还关系到我们的网络体验…

Axure 变量魔法:揭秘局部与全局的动态协同

前言 在 Axure 的世界中&#xff0c;变量是连接设计者意图与用户行为的桥梁。 局部变量&#xff0c;以其独特的灵活性和针对性&#xff0c;允许我们在特定情境下快速响应用户的操作。 而全局变量&#xff0c;则以其广泛的覆盖范围&#xff0c;为跨页面的一致性和连贯性提供了…

最长路(有负权边)spfa

前言&#xff1a;这个题目中有负权重的边&#xff0c;狄克斯特拉算法坑定是用不了的&#xff0c;学一下spfa算法吧&#xff0c;发现就是bellman算法的队列优化 还有一个关键就是我们求最长的权重&#xff0c;我们要将边权重变为-的&#xff0c;最后答案取反就行 #define _CRT_S…

HTTP、HTTPS、SOCKS5三种协议特点

在互联网通信中&#xff0c;HTTP、HTTPS和SOCKS5是三种至关重要的协议&#xff0c;它们各自具有独特的特点和应用场景。本文将详细探讨这三种协议的特点&#xff0c;帮助读者更好地理解它们在网络通信中的作用。 一、HTTP协议特点 HTTP&#xff08;Hypertext Transfer Protoc…

使用 Prometheus 和 Grafana 监控 FastAPI 服务

在现代应用开发中&#xff0c;监控和可视化服务的运行状态和性能指标对于保证系统稳定性至关重要。本文将介绍如何使用 Prometheus 和 Grafana 对 FastAPI 服务进行监控和可视化&#xff0c;并展示如何通过 prometheus_fastapi_instrumentator 将 FastAPI 应用与 Prometheus 集…

【LVS】部署DR模式集群

一、配置实验环境 每台主机的防火墙和SELinux都要关掉 systemctl stop firewalld setenforce 0 1、client(eth0为nat模式) 配置好网卡IP和网关IP&#xff0c;然后重启网卡 nmcli connection reload nmcli connection up eth0 [rootclient ~]# cat /etc/NetworkManager/syst…