python 基础篇 day 3 运算符大全

news2025/1/12 1:09:34

文章目录

  • 什么是运算符
  • 算术运算符
      • 种类
      • 举例
      • 注意
          • 运算顺序:
          • 整数除法和浮点数除法
          • 取模运算
          • 幂运算
          • 字符串拼接
          • 注意整数与浮点数之间的运算
          • 注意溢出问题
  • 赋值运算符
      • 种类
      • 举例
      • 注意事项
          • 赋值顺序
          • 多重赋值
          • 增量赋值运算符
          • 赋值运算符链式操作
          • 注意可变对象的赋值
          • 注意不可变对象的赋值
          • 赋值运算符的优先级
          • 补充
  • 比较运算符
      • 种类
      • 举例
      • 注意
          • 比较运算符返回的结果是布尔类型(true 或 false)。
          • 在比较浮点数时的精度问题
          • 在比较字符时,比较的是字符的 ASCII 值。
          • 字符串之间不能直接使用比较运算符进行比较
  • 逻辑运算符
      • 种类
      • 举例
      • 注意
          • 不限类型
          • 使用短路求值
          • 注意优先级
  • 位运算符
      • 种类
      • 举例
      • 注意
          • 位运算符只能用于整数类型(包括整型和布尔类型)的操作数。
          • 位运算符按位地操作操作数的二进制表示。
          • 对于有符号整数,Python 使用补码表示法。
          • 会根据操作数的位数自动进行位数扩展(填充零)或截断操作。
          • 可能会遇到溢出的情况,即结果超出了操作数所能表示的范围。
  • 成员运算符
      • 种类
      • 举例
      • 注意
          • 成员运算符用于检查一个值是否存在于一个序列(如字符串、列表、元组等)中。
          • 成员运算符对于不同类型的序列有不同的工作方式:
  • 身份运算符
      • 种类
      • 举例
      • 注意
          • 身份运算符用于比较两个对象的身份(内存地址)是否相同。
          • 注意身份运算符的适用范围
          • 一般不用于不可变对象

什么是运算符

举个栗子

5 - 3

5,3都是操作数,-就是运算符

算术运算符

种类

加法:+
减法:-
乘法:*
除法:/
取模(取余):%
幂运算:**
整除://

举例

下面以 a= 10 ,b = 20为例
在这里插入图片描述

注意

运算顺序:

Python遵循数学中的运算优先级,先进行括号内的运算,然后是幂运算,接着是乘法、除法和取模运算,最后是加法和减法运算。如果有多个运算符混合在一起,可以使用括号来明确运算的顺序。

整数除法和浮点数除法

在Python中,除法运算符/会返回一个浮点数结果,即使被除数和除数都是整数。如果你需要进行整除,可以使用双斜杠运算符//。

取模运算

取模运算符%用于获取两个数相除的余数。需要注意的是,取模运算的结果与被除数的符号相同。

例如,5 % 2的结果是1,而-5 % 2的结果是-1。

幂运算

幂运算符**用于计算一个数的指数幂。

例如,2 ** 3的结果是8(即2的3次方)。

字符串拼接

加法运算符+用于字符串的拼接。当其中一个操作数是字符串时,它们将被连接在一起。
例如,"Hello, " + ‘666’ 的结果是 “Hello, 666”

注意整数与浮点数之间的运算

在Python中,整数与浮点数进行运算时,结果将会自动转换为浮点数

例如,3 + 2.5的结果是5.5。

注意溢出问题

当进行数值运算时,需要注意结果是否会导致数据溢出。在使用大整数或大浮点数进行运算时,需要特别注意结果是否超过了数据类型的范围。

赋值运算符

种类

简单赋值:=
加法赋值:+=
减法赋值:-=
乘法赋值:*=
除法赋值:/=
取模赋值:%=
幂运算赋值:**=
整除赋值://=

举例

在这里插入图片描述

注意事项

赋值顺序

赋值运算符=将右侧的值赋给左侧的变量。注意确保赋值操作符的右侧是要赋给左侧的变量的值。

多重赋值

Python支持多重赋值,即在一条语句中同时为多个变量赋不同的值

例如,a, b, c = 10, 20, 30
这样就可以将变量a赋值为10,变量b赋值为20,变量c赋值为30。

增量赋值运算符

增量赋值运算符(如+=、-=、*=等)结合了算术运算符和赋值运算符。它们可以简化代码,并在执行赋值的同时进行运算。

例如,a += 5等价于a = a + 5。

赋值运算符链式操作

Python允许连续使用赋值运算符进行链式赋值。

例如,a = b = c = 1可以连续将变量a、b和c都赋值为1。

注意可变对象的赋值

当将一个可变对象(如列表或字典)赋给另一个变量时,实际上是将对象的引用赋给了变量。这意味着对其中一个变量所做的修改会影响到另一个变量。要注意这种引用的副作用。

注意不可变对象的赋值

当将一个不可变对象(如数字、字符串或元组)赋给另一个变量时,实际上是创建了一个新的对象,并将其赋给变量。对其中一个变量所做的修改不会影响到另一个变量

赋值运算符的优先级

赋值运算符具有较低的优先级,因此在复合表达式中使用赋值运算符时,需要注意运算的顺序和结果。

补充
  • a += 5等价于a = a + 5,但是前者直接对a修改,更快,地址也不变,后者,是先修改在赋值,地址可能会变
    在这里插入图片描述
  • 在赋值运算符链式操作中,变量之间是共享同一个对象的引用。这意味着对其中一个变量所做的修改会影响到其他变量。因此,在使用这些赋值方式时要小心处理可变对象的情况,以免出现意料之外的结果。
  • 当使用多重赋值和赋值运算符链式操作时,对可变对象(如列表)的修改会体现出明显的差异
# 多重赋值
a = b = [1, 2, 3]
a.append(4)
print(b)  # 输出: [1, 2, 3, 4]

# 赋值运算符链式操作
c = d = [1, 2, 3]
c = c + [4]
print(d)  # 输出: [1, 2, 3]

比较运算符

种类

等于:==
不等于:!=
大于:>
小于:<
大于等于:>=
小于等于:<=

举例

在这里插入图片描述

注意

比较运算符返回的结果是布尔类型(true 或 false)。
在比较浮点数时的精度问题

由于浮点数的精度问题,最好使用相对误差或容忍误差的方式来进行比较。

在比较字符时,比较的是字符的 ASCII 值。
字符串之间不能直接使用比较运算符进行比较

需要使用字符串的相关方法(如 strcmp 或相关库函数)来实现字符串的比较。

逻辑运算符

种类

与:and
或:or
非:not

举例

假设 a = 10,b=20
在这里插入图片描述

注意

不限类型

Python 中的逻辑运算符的操作数可以是任意类型的,不仅限于布尔类型。

使用短路求值

逻辑与运算符和逻辑或运算符都使用短路求值的策略,即只有在必要时才会计算和评估第二个条件。(相当于c语言的&&,||)

注意优先级

Python 的逻辑运算符具有优先级,可以使用括号来明确指定运算顺序,避免歧义。

位运算符

种类

按位与(&):对两个操作数的每个对应位执行位与操作。
按位或(|):对两个操作数的每个对应位执行位或操作。
按位异或(^):对两个操作数的每个对应位执行位异或操作。
按位取反(~):反转操作数的每一位,包括符号位。
左移(<<):将操作数的各个位向左移动指定的位数。
右移(>>):将操作数的各个位向右移动指定的位数。

举例

在这里插入图片描述

注意

位运算符只能用于整数类型(包括整型和布尔类型)的操作数。

如果应用于其他类型的操作数,Python 会自动将其转换为整数进行运算。

位运算符按位地操作操作数的二进制表示。

因此,在使用位运算符之前,需要确保你理解操作数的二进制表示形式。

对于有符号整数,Python 使用补码表示法。

这意味着对于负数,最高位是符号位(1 表示负数),其余位表示数值部分。

会根据操作数的位数自动进行位数扩展(填充零)或截断操作。

例如,针对两个操作数长度不同的情况下,Python 会将较短的操作数补充到相同的位数,然后再进行位运算。

可能会遇到溢出的情况,即结果超出了操作数所能表示的范围。

在使用位运算符时,应注意操作数的取值范围,以避免溢出问题。

成员运算符

种类

判断是否为成员:in
判断是否不是成员:not in

举例

在这里插入图片描述

注意

成员运算符用于检查一个值是否存在于一个序列(如字符串、列表、元组等)中。
成员运算符对于不同类型的序列有不同的工作方式:
  • 字符串:成员运算符检查一个子字符串是否存在于大字符串中
  • 列表和元组:成员运算符检查一个元素是否存在于列表或元组中
  • 对于字典类型的数据结构,成员运算符只能用于检查键是否存在,而不能用于检查值是否存在

身份运算符

种类

判断两个对象是否相等:is
判断两个对象是否不相等:is not

举例

在这里插入图片描述

注意

身份运算符用于比较两个对象的身份(内存地址)是否相同。

== 比较对象是否相等 根据数据的值和类型
is 根据俩者的地址

注意身份运算符的适用范围

它通常用于比较可变对象(如列表、字典)或自定义对象的身份。

一般不用于不可变对象

对于不可变对象(如数字、字符串、元组),它们的身份是不可更改的,因此身份运算符对它们没有太多意义。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wangeditor 富文本的使用

版本 4.7.8基本实现展示&#xff1a; 官网地址 https://www.wangeditor.com/ 1.封装好组件 <template><div ref"editorEl" class"editor-wrapper"></div> </template><script> import E from "wangeditor"; imp…

苹果 Apple Watch 新专利,可以自动变幻表盘颜色

根据美国商标和专利局(USPTO)公示的清单&#xff0c;苹果公司近日获得了一项 Apple Watch 相关的技术专利&#xff0c;最大的亮点在于配备颜色采样传感器&#xff0c;可以根据表带、服装自动变幻表盘颜色和主题。 Apple Watch 正面配备颜色采样传感器&#xff0c;可以测量外部…

ele-form 上传图片文件 - 预览、删除、限制上传(隐藏上传控件)

dialog.vue <!-- 采集人脸、更新人脸 --> <template><el-dialog:title"title":visible.sync"dialogVisible"width"30%"top"6vh":close-on-click-modal"false"close"handleClose"><ele-form…

RHCE——七、搭建云存储器

搭建私有云存储 一、使用内网穿透搭建私有云存储1、准备工作2、上传软件3、设置数据库4、配置httpd5、私有云安装6、内网穿透配置 二、使用腾讯云服务器搭建私有云存储1、准备工作2、上传软件3、设置数据库4、配置httpd5、私有云安装 一、使用内网穿透搭建私有云存储 1、准备工…

如何保证缓存和 MySQL 的双写一致 ?

1. 如何保证缓存和 MySQL 的双写一致 &#xff1f; 什么叫做如何保证缓存和 MySQL 双写一致&#xff0c;这个问题就是指当应用程序执行写&#xff08;增删改&#xff09;操作时&#xff0c;如何保证 Redis 和 MySQL 的数据一致性。 当用户发送请求时&#xff0c;程序的执行流程…

打造完美的跨境电商系统,助力企业海外扩张!

打造理想的跨境电商系统&#xff1a;关键要素和优势 在如今全球化和互联网时代&#xff0c;跨境电商已成为企业迅速发展的必然选择。打造一套完美的跨境电商系统&#xff0c;不仅可以提升企业的国际竞争力&#xff0c;还可以助力企业实现海外市场的扩张和增长。本文将为您介绍…

单片机 (一) 让LED灯 亮

一&#xff1a;硬件电路图 二&#xff1a;软件代码 #include "reg52.h"#define LED_PORT P2void main() {LED_PORT 0x01; // 0000 0001 D1 是灭的 } #include "reg52.h" 这个头文件的作用&#xff1a;包含52 系列单片机内部所有的功能寄存器 三&#…

Vant 4.6.4发布,增加了一些新功能,并修复了一些bug

导读Vant 4.6.4发布,增加了一些新功能&#xff0c;并修复了一些bug等。 新功能 feat(area-data): 更新芜湖的县区数据&#xff0c;由 nivin-studio 在 #12122 中贡献feat(Locale): 添加塞尔维亚语到国际化&#xff0c;由 RogerZXY 在 #12145 中贡献feat(ImagePreview): 添加 c…

线上问诊:业务数据采集

系列文章目录 线上问诊&#xff1a;业务数据采集 文章目录 系列文章目录前言一、环境准备1.Hadoop2.Zookeeper3.Kafka4.Flume5.Mysql6.Maxwell 二、业务数据采集1.数据模拟2.采集通道 总结 前言 暑假躺了两个月&#xff0c;也没咋写博客&#xff0c;准备在开学前再做个项目找…

爬虫selenium获取元素定位方法总结(动态获取元素)

目录 元素 查看元素信息 元素定位 通过元素id定位 通过元素name定位 通过xpath表达式定位 绝对路径 相对路径 通过完整超链接定位 通过部分链接定位 通过标签定位 通过类名进行定位 通过css选择器进行定位 id选择器 class选择器 标签选择器 属性选择器 定位带…

乘积最大子数组

题目链接 乘积最大子数组 题目描述 注意点 -10 < nums[i] < 10nums 的任何前缀或后缀的乘积都 保证 是一个 32-位 整数 解答思路 最初想到求和最大的子数组所用的贪心算法&#xff0c;判断包括该元素时的最大值tmp&#xff0c;再将当前最大值res与tmp比较&#xff0…

“车-路-网”电动汽车充电负荷时空分布预测(matlab)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考《基于动态交通信息的电动汽车充电负荷时空分布预测》和《基于动态交通信息的电动汽车充电需求预测模型及其对配网的影响分析》文献模型&#xff0c;考虑私家车、出租车和共用车三类交通工具特性和…

长胜证券:九成注册制公司选择上市标准一,牛股“双高”特征明显

新股注册制施行以来&#xff0c;新股公司可选的上市规范愈加多样化&#xff0c;不同板块、不同上市规范的新股公司亦呈现出不同特征&#xff0c;新股上市后不再呈现“套路化”的上涨行情&#xff0c;新股破发成为常态。数据显现&#xff0c;2022年全年及2023年以来&#xff0c;…

Redis 列表 | Navicat

在最近的博客 文章 中&#xff0c;我们已经了解了 Redis 的六种数据类型。其中&#xff0c;Redis 列表&#xff08;List&#xff09;包含一组字符串&#xff0c;他们按照被添加的顺序进行排序。本文将就列表数据类型进行展开介绍&#xff0c;并且重点介绍一些主要的命令来管理它…

自研分布式IM-HubuIM RFC草案

HubuIM RFC草案 消息协议设计 基本协议 评估标准 【性能】协议传输效率&#xff0c;尽可能降低端到端的延迟&#xff0c;延迟高于200ms用户侧就会有所感知 【兼容】既要向前兼容也要向后兼容 【存储】减少消息包的大小&#xff0c;降低空间占用率&#xff0c;一个字节在亿…

Qt应用开发(拓展篇)——示波器/图表 QCustomPlot

一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系&#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的&#xff0c;出版质量的2D绘图&#xff0c;图形和图表&#xff0c;以及为实时可视化应用程序提供高性能。 QCustomPl…

温湿度传感器之Modbus TCP相比较Modbus RTU的优势

1) 当多个网关共同接一个后台服务器&#xff0c;而一个网关下挂接多个485设备时&#xff0c;如果不同的网关挂接同样地址号的485设备时那么后台服务器无法区分是哪个485从设备&#xff0c;并且最多只能限制485设备个数254个&#xff0c;而modbus-tcp协议包含自定义报文头4个字节…

什么是NetDevOps

NetDevOps 是一种新兴的方法&#xff0c;它结合了 NetOps 和 DevOps 的流程&#xff0c;即将网络自动化集成到开发过程中。NetDevOps 的目标是将虚拟化、自动化和 API 集成到网络基础架构中&#xff0c;并实现开发和运营团队之间的无缝协作。 开发运营&#xff08;DevOps&…

网站和API支持HTTPS,最好在Nginx上配置

随着我们网站用户的增多&#xff0c;我们会逐渐意识到HTTPS加密的重要性。在不修改现有代码的情况下&#xff0c;要从HTTP升级到HTTPS&#xff0c;让Nginx支持HTTPS是个很好的选择。今天我们来讲下如何从Nginx入手&#xff0c;从HTTP升级到HTTPS&#xff0c;同时支持静态网站和…

GEE-PIE遥感大数据处理技术

随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近年来遥感技术突飞猛进。由此&#xff0c;遥感数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量也大幅增长&#xff0c;使其越来越具有大数据特征。对于相关研究而言&#xff0c;遥感大数据的出现为其提…