【编程基础之Python】10、Python中的运算符
【编程基础之Python】10、Python中的运算符
- Python中的运算符
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
- 运算符总结
Python中的运算符
Python是一门非常流行的编程语言,它支持各种运算符来执行各种操作。这篇文章将详细介绍Python的各种运算符及其使用方法。
算术运算符
算术运算符用于执行基本的数学运算,包括加、减、乘、除和取模等操作。以下是Python支持的算术运算符:
- 加法运算符(+):用于两个数字或字符串的相加。
- 减法运算符(-):用于两个数字的相减。
- 乘法运算符(*):用于两个数字或字符串的相乘。
- 除法运算符(/):用于两个数字的相除,结果为浮点数。
- 整除运算符(//):用于两个数字的整除,结果为整数,也叫地板除。
- 取模运算符(%):用于两个数字的取模操作,即返回两个数相除的余数。
- 指数运算符(**):用于求一个数值的某次幂,也叫幂运算符。
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法 | 3 + 4 = 7 |
- | 减法 | 7 - 3 = 4 |
* | 乘法 | 3 * 4 = 12 |
/ | 除法 | 7 / 3 = 2.33333… |
// | 整除 | 7 // 3 = 2 |
% | 取模 | 7 % 3 = 1 |
** | 指数 | 2 ** 3 = 8 |
以下是算术运算符的案例:
x = 10
y = 3print(x + y) # 输出 13
print(x - y) # 输出 7
print(x * y) # 输出 30
print(x / y) # 输出 3.3333333333333335
print(x // y) # 输出 3
print(x % y) # 输出 1
print(x ** y) # 输出 1000
赋值运算符
赋值运算符用于给变量或者表达式赋值。Python支持多种赋值运算符,包括简单赋值、加等于赋值、减等于赋值、乘等于赋值、除等于赋值、取模等于赋值、幂等于赋值、整除等于赋值等。以下是一些常见的赋值运算符及其使用方法:
- 简单赋值运算符(=):用于将一个值赋给变量。
- 加等于赋值运算符(+=):用于将右边的值加到左边的变量上,并将结果赋给左边的变量。
- 减等于赋值运算符(-=):用于将右边的值减去左边的变量,并将结果赋给左边的变量。
- 乘等于赋值运算符(*=):用于将右边的值乘以左边的变量,并将结果赋给左边的变量。
- 除等于赋值运算符(/=):用于将左边的变量除以右边的值,并将结果赋给左边的变量。
- 取模等于赋值运算符(%=):用于将左边的变量对右边的值取模,并将结果赋给左边的变量。
- 幂等于赋值运算符(**=):用于将左边的变量幂运算右边的值,并将结果赋给左边的变量。
- 整除等于赋值运算符(//=):用于将左边的变量整除右边的值,并将结果赋给左边的变量。
以下是赋值运算符的案例:
a = 10 # 简单赋值
print(a)
a += 5 # 加等于赋值,等同于 a = a + 5
print(a)
a -= 3 # 减等于赋值,等同于 a = a - 3
print(a)
a *= 2 # 乘等于赋值,等同于 a = a * 2
print(a)
a /= 4 # 除等于赋值,等同于 a = a / 4
print(a)
a **= 3 # 幂等于赋值,等同于 a = a ** 3
print(a)
a //= 2 # 整除等于赋值,等同于 a = a // 2
print(a)
a %= 2 # 取模等于赋值,等同于 a = a % 2
print(a)
比较运算符
比较运算符用于比较两个值,返回一个布尔值(True或False)。以下是Python支持的比较运算符:
- 等于运算符(==):用于检查两个值是否相等,如果相等则返回
True
,否则返回False
。 - 不等于运算符(!=):用于检查两个值是否不相等,如果不相等则返回
True
,否则返回False
。 - 大于运算符(>):用于检查左侧的值是否大于右侧的值,如果是则返回
True
,否则返回False
。 - 小于运算符(<):用于检查左侧的值是否小于右侧的值,如果是则返回
True
,否则返回False
。 - 大于等于运算符(>=):用于检查左侧的值是否大于或等于右侧的值,如果是则返回
True
,否则返回False
。 - 小于等于运算符(<=):用于检查左侧的值是否小于或等于右侧的值,如果是则返回
True
,否则返回False
。
以下是比较运算符的案例:
x = 10
y = 3print(x == y) # 输出 False
print(x != y) # 输出 True
print(x > y) # 输出 True
print(x < y) # 输出 False
print(x >= y) # 输出 True
print(x <= y) # 输出 False
逻辑运算符
逻辑运算符用于比较两个或多个表达式的布尔值,并返回一个布尔值(True
或False
)。以下是Python支持的逻辑运算符:
- 逻辑与运算符(and):用于检查两个表达式是否都为
True
。 - 逻辑或运算符(or):用于检查两个表达式是否至少有一个为
True
。 - 逻辑非运算符(not):用于对表达式的值取反,如果条件为假,则返回
True
,否则返回False
。
以下是逻辑运算符的案例:
x = 5
y = 3
z = 7print(x > y and z > x) # 输出 True
print(x < y or z < x) # 输出 False
print(not x < y) # 输出 True
逻辑运算符的优先级与数学中的运算符优先级不同,需要使用括号来明确优先级。例如,
(x > y) and (z > x)
与x > y and z > x
的结果是不同的。
位运算符
位运算符是用于对二进制数进行操作的运算符,包括按位与、按位或、按位异或、按位取反等,适用于整数类型数据。下面是Python中的位运算符:
- 按位与运算符(&):参与运算的两个数,对应的二进制位上如果都是1,结果为1,否则为0。
- 按位或运算符(|):参与运算的两个数,对应的二进制位上如果有一个是1,结果为1,否则为0。
- 按位异或运算符(^):参与运算的两个数,对应的二进制位上如果只有一个是1,结果为1,否则为0。
- 按位取反运算符(~):对参与运算的数的二进制位按位取反,0变为1,1变为0。
- 左移运算符(<<):将参与运算的数的二进制位向左移动指定的位数,左移后低位补0。
- 右移运算符(>>):将参与运算的数的二进制位向右移动指定的位数,右移后高位补0或补1(取决于参与运算的数的符号位)。
以下是位运算符的案例:
a = 60
b = 13print(a & b) # 输出12
print(a | b) # 输出61
print(a ^ b) # 输出49
print(~a) # 输出-61
print(a << 2) # 输出240
print(a >> 2) # 输出15
成员运算符
成员运算符用于测试一个值是否在序列中出现。常用的成员运算符有 in
和 not in
。
- in:用于判断一个值是否是一个序列的成员,是返回
True
,否则返回False
。 - not in:用于判断一个值是否不是一个序列的成员,不是返回
True
,否则返回False
。
以下是成员运算符的案例:
a = [1, 2, 3, 4, 5]print(3 in a) # 输出True
print(6 not in a) # 输出True
身份运算符
身份运算符用于比较两个对象的存储单元,返回布尔值 True
或 False
。
以下是 Python 中的身份运算符:
is
:判断两个对象是否引用同一存储单元,如果是则返回True
,否则返回False
。is not
:判断两个对象是否引用不同的存储单元,如果是则返回True
,否则返回False
。
a = 5
b = 5
print(a is b) # 输出Truec = [1, 2, 3]
d = [1, 2, 3]
print(c is d) # 输出False
运算符优先级
在Python中,不同的运算符有不同的优先级,当表达式中含有多个运算符时,Python会按照一定的优先级进行计算。常见运算符的优先级从高到低如下:
运算符 | 描述 |
---|---|
** | 指数运算(最高优先级) |
+x, -x, ~x | 正、负、按位取反运算 |
*, /, //, % | 乘、除、整除、取模运算 |
+, - | 加、减运算 |
<<, >> | 按位左移、按位右移运算 |
& | 按位与运算 |
^ | 按位异或运算 |
| | 按位或运算 |
==, !=, >, >=, <, <= | 比较运算符和成员运算符(左侧优先) |
=, +=, -=, *=, /=, //=, %=, **= | 赋值运算符和增量赋值运算符(从右向左结合) |
is, is not | 身份运算符 |
in, not in | 成员运算符 |
not | 逻辑非运算符 |
and | 逻辑与运算符 |
or | 逻辑或运算符 |
lambda | lambda表达式(最低优先级) |
运算符总结
本文介绍了Python中常见的运算符,包括算数运算符、比较运算符、逻辑运算符、位运算符、赋值运算符、成员运算符、身份运算符等。在使用运算符时需要注意运算符的优先级和结合性,同时也要注意数据类型的匹配问题。
Python中的运算符不仅可以用于数值类型,还可以用于字符串、列表、元组、字典等复合数据类型。同时,Python还提供了一些特殊的运算符,如三目运算符和链式比较运算符等,方便程序员进行代码的编写和优化。
在实际编程中,合理地使用运算符可以提高代码的效率和可读性,对于Python程序员而言是一个必要的基础知识。
相关文章:

【编程基础之Python】10、Python中的运算符
【编程基础之Python】10、Python中的运算符Python中的运算符算术运算符赋值运算符比较运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级运算符总结Python中的运算符 Python是一门非常流行的编程语言,它支持各种运算符来执行各种操作。这篇文章将详细介绍…...

Android的基础介绍
一、Android介绍 Android是一种基于Linux的自由及开放源代码的操作系统,Android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。 Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——…...

用户登录请求100w/每天, JVM如何调优
用户登录请求100w/每天, JVM如何调优 大概可以分为以下8个步骤。 Step1:新系统上线如何规划容量? 1.套路总结 任何新的业务系统在上线以前都需要去估算服务器配置和JVM的内存参数,这个容量与资源规划并不仅仅是系统架构师的随意估算的&am…...

C/C++每日一练(20230306)
目录 1. 判断素数的个数 ☆ 2. 分隔链表 ★★ 3. 数据流的中位数 ★★ 1. 判断素数的个数 在一个数组A中存放100个数据,用子函数判断该数组中哪些是素数,并统计该素数的个数,在主函数中输出该素数的个数。 代码: #includ…...

多线程的创建、Thread类、线程安全、同步、通信
目录 多线程的创建 方式一:继承Thread类 方式二:实现Runnable接口 方式三:JDK 5.0新增:实现Callable接口 Thread的常用方法 线程安全 线程安全问题是什么、发生的原因 线程安全问题案例模拟 线程同步 同步思想概述 方式…...

GraphPad Prism v9.5.1.733 科研绘图软件多语言
GraphPad Prism集生物统计、曲线拟合和科技绘图于一体,其所具有的功能均非常实用和精炼,包括了一些特色的功能,如ROC曲线分析、Bland-Altman分析等;曲线拟合功能是GraphPad Prism8 汉化版超越其他统计软体的制胜法宝,GraphPad Prism8 汉化版的线性/非线性拟合功能使用操作…...

基于intel soc+fpga智能驾驶舱和高级驾驶辅助系统软件设计(三)
虚拟化操作系统介绍 车载平台有逐渐融合的趋势,车载 SoC 的计算性能和应用快速增长,面临着多种应用在 多个显示子系统融合在一起的问题,这就要求平台运行多个操作系统。虚拟化(Virtualization) 技术飞速发展࿰…...

什么?年终奖多发1块钱竟要多缴9.6W的税
对于大多数的工薪阶级来说,目前现行的个人所得税适用于全年累计收入一次性税收优惠。 有可能有的人不理解一次性税收优惠是什么意思,所以这里我首先解释下什么是一次性税收优惠,然后在讲一下为什么明明公司多发了钱,到手反而会更…...
动态绑定右键菜单控件
一、动态绑定右键菜单控件 /// <summary> /// 通过递归获取执行控件 /// </summary> /// <typeparam name"T"></typeparam> /// <param name"c"></param> /// <pa…...

JavaScript基础三、数据类型
零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…...

Python 随机漫步
目录 1. 创建 RandomWalk 类 2. 选择方向 3. 绘制随机漫步图 4. 总结 本篇博客将使用 Python 来 生成随机漫步数据,再使用 Matplotlib 库,将以引人注目的方式将这些数据呈现出来。 随机漫步 顾名思义就是随机走出的步伐,它是这样行…...

Spark SQL优化机制
Spark SQL优化机制Spark SQLCatalyst 优化器逻辑优化物理优化TungstenUnsafe RowWSCGRDD 缺点 : RDD的算子都是高阶函数 ,Spark Core 不知函数内的操作,只能闭包形式发给 Executors, 无法优化 DataFrame 不同点: 数据的表示形式…...

十五、Spring中的八大模式
1 简单工厂模式 BeanFactory的getBean()方法,通过唯一标识来获取Bean对象。是典型的简单工厂模式(静态工厂模式); 2 工厂方法模式 FactoryBean是典型的工厂方法模式。在配置文件中通过factory-method属性来指定工厂方法&#x…...

GrabCut算法、物体显著性检测
图割GraphCus算法。利用颜色、纹理等信息对GraphCut进行改进,形成效果更好的GrabCut算法。 对图像的目标物体和背景建立一个K维的全协方差高斯混合模型。 其中,单高斯模型的概率密度函数用公式表示为: 高斯混合模型可表示为n个单高斯模型的概…...

亚马逊、速卖通、lazada店铺一直不出单,没流量怎么办?
近几年,跨境电商入驻的卖家越来越多,平台的流量越来越分散,导致店铺没有流量没有订单的情况经常发生,因此卖家对店铺的优化尤为主要。 对于亚马逊卖家来说,几乎每天都会问虽然我把我的产品放在货架上,但没…...

深度剖析C语言符号篇
致前行的人: 人生像攀登一座山,而找寻出路,却是一种学习的过程,我们应当在这过程中,学习稳定冷静,学习如何从慌乱中找到生机。 目录 1.注释符号: 2.续接符和转义符: 3.回车与换行…...
【学习总结】ORBSLAM3使用自己相机数据
本文仅用于自己学习总结。本文档记录如何修改ORBSLAM3的接口,用自己的图片和数据。 单目视觉,无IMU,离线数据运行的配置过程 euroc_examples.sh 首先从euroc_examples.sh这个运行指令改。这个文件在最新版的代码中被删掉了,但通…...

C++单例模式实现
目录 1.提出的需求 2.如何定义一个类,使得这个类最多只能创建一个对象? 3.代码 4.小结 C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 1.提出的需求 在架构设计时&am…...

343. 整数拆分
343. 整数拆分 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。示例 2: 输入: n 10 输出: 36…...

SCAFFOLD: Stochastic Controlled Averaging for Federated Learning学习
SCAFFOLD: Stochastic Controlled Averaging for Federated Learning学习背景贡献论文思想算法局部更新方式全局更新方式实验总结背景 传统的联邦学习在数据异构(non-iid)的场景中很容易产生“客户漂移”(client-drift )的现象,这会导致系统的收敛不稳定或者缓慢。…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...