Python中的所有运算符以及运算符的优先级

article/2025/9/17 10:45:42

文章目录

  • 前言
  • 一、算术运算符
  • 二、赋值运算符
  • 三、比较运算符
  • 四、逻辑运算符
  • 五、位运算符
  • 六、运算符的优先级
  • 案例实战
  • 总结


前言

运算符是一些人为定义的特殊符号,比如我们生活当中最常见的+ 、-、×、÷,它们主要用于数学计算、比较大小和逻辑运算等等。那这些运算符在Python中怎么表示以及划分呢?

在Python语言中将运算符划分为五种类型:①算术运算符、②赋值运算符、③比较运算符、④逻辑运算符、⑤位运算符。第五种------位运算符稍后作为了解即可(开发上基本用不到),今天重点跟大家介绍前面四种运算符以及这些运算符的优先级。


一、算术运算符

算术运算符是处理四则运算(加减乘除)的符号,在日常数字的处理中应用最多。常用的算术运算符如下表所示:

运算符说明举例结果
+1.5 + 2324.5
-8.76 - 53.76
*10 * 2.828.0
/5 / 22.5
//取整(返回商的整数部分)5 // 22
%取余(返回除法的余数)5 % 21
**幂(返回x的y次方)2 ** 38,即2³

上表中的 加、减、乘、除 四则运算非常简单,这里就不做详细介绍。只是有一点需要提醒大家留意Python语言中进行四则运算时,凡是有小数参与到运算中,哪怕计算结果为整数,也是默认保留小数点后一位的0。如下图代码所示:

在这里插入图片描述

上面黄色部分标识的提示一定要记住哦,有的考试题在基础上会考察到

在这里插入图片描述

再跟大家聊聊上表中的取整取余,有的小伙伴数学基础比较差的对这几个可能还是比较懵的状态。

取整顾名思义就是将数据只取整数部分,不要小数部分。字面意思是这样,但是取整的方式可不是直接这样分开只拿前面的部分哦。取整的方式有三种:向下取整四舍五入向上取整。我们这里所说的取整运算符就是向下取整这种方式,也就是最简单粗暴的只取整数部分,比如2.45向下取整就是2。在Python中取整运算符的表示符号是两个正斜杠----“ //。如下图所示:

在这里插入图片描述

至于刚才所说的三种取整方式的区别以及详细用法,想详细了解的博友可以在评论区留言,博主之后专门写一篇博客针对这块的内容。由于篇幅原因,在此就不详细赘述了。

取余就是两数相除,我们取余数部分。比如9除以5,如果取余数的话就是商1余4。在Python中取余运算符的表示符号是一个百分号----“ %,如下图所示:

在这里插入图片描述

注意:使用除法(/或//)运算符和求余(%)运算符时,除数(第二个操作数)不能为0,否则将会出现异常,如下图所示:

在这里插入图片描述

二、赋值运算符

赋值运算符主要用来为变量赋值。使用时可以直接把赋值运算符 “=” 右边的值赋给左边的变量,当然也可以进行某些运算后再赋值给左边的变量。在Python中常用的赋值运算符如下表所示:

运算符说明实例简化写法展开形式
=基本赋值运算a = ba = b
+=加赋值a += ba = a + b
-=减赋值a -= ba = a - b
*=乘赋值a *= ba = a * b
/=除赋值a /= ba = a / b
//=取整赋值a //= ba = a // b
%=取余赋值a %= ba = a % b
**=幂赋值a **= ba = a ** b

大家看上表应该就明白了,赋值运算符其实归根到底一句话:就是把等号右边的东东给到左边,不管右边是个值,还是一个表达式。在这里给大家顺便说说表达式的概念:使用运算符将不同类型的数据按照一定的规则连接起来的式子称为表达式

至于上表中的简化写法其实也很好理解,就拿“加赋值”来说:a += b 就是把 a 和 b 相加之后的结果赋给 a ,相当于 a = a + b。如下图所示代码:

在这里插入图片描述
上图代码思路:首先把10赋给变量a,那a的值就是10,然后把a+5赋给变量a,就是相当于把10+5赋给变量a,那a的值又成为了15,最终打印出a的值,就是15。

这些简化写法的存在就是为了方便提升我们开发人员的开发效率,这也是我们常在别人代码里面看到的,如果下次再见到那些简化版赋值运算符,我们就会明白这些含义了。当然如果看着别扭,也可以像上表的展开形式一样,先展开还原再看。其余赋值运算符就不多说了,原理都是一样的。

三、比较运算符

比较运算符,也叫关系运算符,主要用于对变量或表达式的结果进行大小、真假等的比较。如果比较的结果为真,就返回True,如果为假,就返回False。看到这两个单词,不知道大家还有咩有印象,在哪里出现过呢?

在这里插入图片描述

在博主之前讲的【Python语言的33个保留字】和【Python中的基本数据类型】博客里面就有这两个单词,温故而知新哦。

比较运算符通常用在条件语句中作为判断的依据。比如下图这组代码:

在这里插入图片描述

上图代码的大概意思大家都可以看懂,就是一个比较大小的小程序。只是里面涉及的条件判断语句我们还没有学到,这在接下来博客会讲到。代码里面的符号比如:>、== 这些就是比较运算符,有小伙伴可能会纳闷了:里面怎么会出现了两个等于号?

在这里插入图片描述

注意:在Python中 “=” 和 “==” 表示的含义不一样,不要搞混哦。“=”表示的是赋值,把一个值赋给另一个变量,目的是方便我们后续代码中处理该值的时候不至于重写,直接用变量代替即可。而“==”才是真正表示谁和谁的大小相等,因此我们在后面学到条件语句的时候,如果需要判断某某等于某某,一定要写 == ,如果是写成一个等号,代码会报错。

接下来我们看看Python中的比较运算符,如下表所示:

运算符作用举例结果
>大于1 > 2False
<小于30 < 68True
==等于‘A’ == ‘a’False
>=大于或等于66 >= 55True
<=小于或等于78 <= 13False
!=不等于5 != 23True

上表当中的运算符大家都看得懂,只是有小伙伴可能会好奇:数字和数字可以比大小,字母和字母是怎么比的呢?比如上表中的大写字母“A”和小写字母“a”如何来比较?这里给大家说一下,字母比较大小,其实是比较字母所在ASCII表中的数字大小,这里给大家附上ASCII表一部分:

在这里插入图片描述

从ASCII表中我们可以看到大写字母“A”的位置是65,小写字母“a”的位置是97,所以 “A” == “a” 的结果是False,理应是 “A” < “a”,如下图代码所示:

在这里插入图片描述

上面提到的ASCII是文字的一种编码方式,除了ASCII,还有gbk,utf-8等等。编码解码在后续博客中会详细讲到,在这里简单给大家先说一下,编码就是把字符按照一定规则编入计算机中进行存储,最终存储的形式就是0101这种二进制。而解码就是把计算机中这些二进制数据按照编码时使用的规则再还原成正常字符显示在电脑上。所以这些字符在计算机中必须有一个固定并且唯一的编号,否则就会出现文字混乱,比如刚才的 “A” 在计算机中的编号位置就是65,“a” 的编号位置是97。

那既然英文可以找到位置,中文当然也有位置,以此类推,中文字符也可以比较大小哦。这里给大家介绍一个内置函数ord(),这个函数的功能是帮我们找到字符对应的编号位置,用法也很简单,如下图:

在这里插入图片描述

有了这个神兵利器的帮助,我们也可以比较中文字符大小,看看比较结果是否一致,如下图:

在这里插入图片描述

可以看到结果是True,因为“家”的编号是23478,确实大于“国”的编号22269。

注意:在输入符号的时候切记是在英文状态下输入,否则会报错,比如下面这种:

在这里插入图片描述

说明:在Python中,当需要判断一个变量是否介于两个值之间时,可以采用“值1<变量<值2”的形式,例如“20<x<30”。

四、逻辑运算符

某商场在每周五的下午3点到5点搞促销活动,全部蔬菜打五折。那么想参加促销活动的顾客,就要在时间上满足两个条件:必须是周五,并且必须是下午3点到5点。这里面用到了逻辑关系,Python中也提供了这样的逻辑运算符来进行逻辑运算。

逻辑运算符是对真和假两种布尔值进行运算,运算后的结果仍是一个布尔值。布尔类型是Python基本数据类型中的一种,这块如果还有小伙伴不清楚的,可以看博主之前的博客【Python中的基本数据类型】。

Python中的逻辑运算符主要包括 and(逻辑与)、or(逻辑或)、not(逻辑非)。下表列出了逻辑运算符的用法和说明:

运算符含义用法结合方向
and逻辑与事件1 and 事件2从左往右
or逻辑或事件1 or 事件2从左往右
not逻辑非not 事件从右往左

有的小伙伴可能不理解这三个运算符是啥东东,我给大家逐个解释一下。

逻辑与,运算符是and,and的中文意思就是并且,也就是说and前后的两个事件一定要同时发生,对照上面的商场打折情景,如果要买到打折商品,必须同时满足“星期五” 和 “下午3点到5点”这两个条件。关于逻辑与,我们可以看下面的这组代码:

在这里插入图片描述

上述代码的功能就是判断一个数是不是正奇数,我们可以看到如果要打印出 “a是正奇数” 这句话,就必须同时满足两个条件:a>0;a除以2余数是1;这就是逻辑与的作用,限定了左右两个事件必须同时为真,结果才能为真。如果有一个是假的,那结果都会为假。

逻辑或,运算符是or,就是或者的意思。顾名思义,or左右两个事件只要有一个是真的,那结果就可以为真,不要求一定要两个都为真。如下图代码:

在这里插入图片描述
上面代码运行之后在冒号后面,也就是红色框选区域,需要手动输入一门编程语言,然后按下回车键,代码才会运行结束,这是因为input()函数的作用就是专门用来接收用户的终端输入。代码中显示如果会的编程语言是Python或者C或者Java中的任何一种,则都可以被录用,我们试试输入C,然后按回车键看看结果:

在这里插入图片描述
如果输入Ruby再看看结果:

在这里插入图片描述

逻辑非,也就是not 事件,事件如果是真的,加上not就变成假的;事件如果是假的,加上not就变成真的;逻辑非的作用就相当于让事件反着来,比如下图代码所示:

在这里插入图片描述

我们可以看到代码中a的值是10,本来a是肯定大于1的,也就是说a>1事件的结果为真,但是前面加了not,也就是逻辑非,这下结果就成了假,这就是逻辑非的作用。当然我们也可以看出逻辑非的结合顺序是从右往左,也就是我们先看右边事件的结果,再看左边的not,这和上面的逻辑与、逻辑或的结合方向刚好相反。

使用逻辑运算符进行逻辑运算时,其运算结果如下表所示:

表达式1表达式2表达式1 and 表达式2表达式1 or 表达式2not表达式1
TrueTrueTrueTrueFalse
TrueFalseFalseTrueFalse
FalseFalseFalseFalseTrue
FalseTrueFalseTrueTrue

至于运算结果这里大家也都能理解了,我就不做详细分析。

五、位运算符

位运算符是把数字看作二进制数来进行计算的,因此,需要先将要执行运算的数据转换为二进制,然后才能执行运算。具体的不做详细讲解,开发中用不到,大家知道即可。

六、运算符的优先级

运算符的优先级是指在混合运算中哪一个运算符先计算,哪一个后计算,就好像数学的四则运算应遵循的“先乘除,后加减”是一个道理。

Python中运算符的运算规则是:优先级高的运算符先执行,优先级低的运算符后执行,同一优先级的操作按照从左到右的顺序进行。也可以像数学四则运算那样使用小括号,括号内的运算最先执行。如下表所示按从高到低的顺序列出了运算符的优先级。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

运算符说明
**
+、-正号 和 负号
*、/、//、%算术运算符
+、-算术运算符
>、>=、<、<=、== 、!=比较运算符

从上表我们可以看出优先级最高的是,优先级最低的是比较运算符

上表中第二行的 “+” 和 “-” 表示正数、负数的意思,当然正数我们一般忽略不写+号,第四行中的 “+” 和 “-” 表示加法和减法的意思。如果以后我们遇到了别人写的代码当中有大量混合运算在里面,就可以结合上表中的运算优先级来逐一拆解计算,不至于算出五花八门的结果。

注意:在编写程序时尽量使用括号“()”来限定运算次序,避免运算次序发生错误。

案例实战

接下来我们完成一个实战案例:用Python代码实现上面的商场打折活动的情景。

思路:
首先需要设置两个变量,分别保存到场日期和具体时间,日期和时间由用户自己输入;
然后写好判断条件,使用if语句(下一篇会学到),条件有两个:星期五和15点-17点;
最后将用户输入的日期和时间分别和我们设定的条件逐一比较,两个条件都满足,就可以享受促销,否则不行;

附上全部代码:

# 打印输出提示性话语
print("================商场促销活动进行中================")
# 输入到商场的日期
week = input("请输入到商场的日期是星期几【比如星期日】: ")
# 输入到商场的具体时间
time = int(input("请输入到商场的具体时间是几点【从0-23】: "))
# 判断是否满足参加活动的条件
if week == "星期五" and 15 <= time <= 17:print("恭喜您,获得了促销参与资格,赶快入场选购吧!!!")
else:print("很抱歉,您来晚一步,期待下次活动。。。")

代码当中使用到了int()函数,作用是将其他类型字符转为数字类型,因为input()函数将输入的任何数据默认以字符串类型处理,但是字符串没办法和数字比较大小,所以这里将字符串先转化为数字类型。代码运行之后我们需要输入两次数据,每次输入完,记得按下回车键。来看看运行之后效果。

先看符合条件的运行效果如下图:

在这里插入图片描述

再看下不符合条件的运行效果:

在这里插入图片描述

有兴趣的小伙伴都可以动手自己敲一下这个实战案例,代码可以不看博主的,自己构思哦。


总结

今天跟大家主要讲了Python中的运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符以及它们的优先级顺序,在以后开发中最常用的就是前面四种,大家都可以针对性加强练习。


http://chatgpt.dhexx.cn/article/mKsqUTe1.shtml

相关文章

在c语言中逻辑运算符的优先级是,c语言中逻辑运算符优先级是什么?

c语言中逻辑运算符优先级由高到低依次是&#xff1a;&#xff01;(逻辑非)、&&(逻辑与)、||(逻辑或)。逻辑表达式的值为逻辑值&#xff1b;逻辑值分为逻辑真值和逻辑假值&#xff0c;在判断时&#xff0c;仅有零值被判断为逻辑假值(false)&#xff0c;一切非零值均可被…

算数运算符,比较运算符,逻辑运算符,赋值运算符,运算优先级

文章目录 1.算数运算符1.1注意事项2.关系运算符&#xff0c;比较运算符2.1注意事项 3.逻辑运算符3.1注意事项 4.赋值运算法4.1注意特点 5.运算优先级 1.算数运算符 package mainimport "fmt"func main() {//说明&#xff0c;如果运算的数都是整数&#xff0c;那么除后…

【C语言】运算符的优先级

目录 算术运算符&#xff1a; 关系运算符&#xff1a; 逻辑运算符 三种运算符优先级高低比较&#xff1a; 算术运算符&#xff1a; 5种算术运算符&#xff1a;, -, *, /, % 优先级&#xff1a;*&#xff0c;/&#xff0c;%大于&#xff0c;- 关系运算符&#xff1a; 6种…

逻辑运算符与++的使用与优先级差别

我们的教材通常会按级次区别优先级&#xff0c;如下图所示&#xff1a; 那对于一个简单的编程题&#xff1a; int a,b,c,y;abc1;y a||b&&c 此时输出结果为&#xff1a;y1,a2,b1,c1 按照逻辑运算符&&优先于||&#xff0c;结果不应该为2&#xff0c;2&#xff…

逻辑运算符、位运算符、移位运算符、三目运算符、运算符的优先级

一、逻辑运算符 &#xff1a;逻辑运算符的作用是用于连接布尔表达式的。 1、& &#xff08;与&#xff0c;并且&#xff09; 规律&#xff1a; 只有左右变量同时为true&#xff0c;那么结果才是true&#xff0c;否则就false。 2、| &#xff08;或&#xff0c;或者&…

C/C++逻辑运算符 | | 和 的优先级误区——优先级决定运算顺序吗?

C运算符优先级表&#xff1a; 根据这个表格&#xff0c;我们很容易得出结论&#xff1a;&&的优先级大于|| 下面看一段代码&#xff0c;来验证这个结论 #include<iostream> using namespace std; int main() {int x 3;int y 1 || (x 1) && (x 1);pr…

运算符的优先级顺序

运算符优先级口诀&#xff1a;单目算术位关系&#xff0c;逻辑三目后赋值。 单目&#xff1a; 、- - 算术&#xff1a;、-、*、/、% 位&#xff1a;位移运算符&#xff1a;<<&#xff08;左移位&#xff09;、>>&#xff08;带符号右移位&#xff09;、>>>…

c++运算符优先级归纳

C一共有 18个优先级&#xff0c;运算中按优先级进行性计算&#xff0c;当优先级相同时&#xff0c;根据结合性规则来决定。 结合性&#xff1a; 1.从左到右&#xff08;L-R&#xff09;&#xff1a;操作数和操作符结合的顺序大部分是从左到右结合性的&#xff0c;例如&#xff…

C++运算符的优先级

有括号的优先级最高&#xff0c;涉及对象的运算符&#xff1b; 自增自减&#xff0c;取值&#xff0c;取地址运算符&#xff0c;逻辑非&#xff0c;按位取反&#xff0c;强制类型转换&#xff0c;长度运算符 先乘除后加减 左移右移运算符 比较运算符、三目运算符 各类赋值运算…

运算符优先级

C语言中&#xff0c;运算符除了常见的三大类&#xff0c;算术运算符、关系运算符与逻辑运算符之外&#xff0c;还有一些用于完成特殊任务的运算符。 运算符的运算优先级共分为15 级&#xff0c;1 级最高&#xff0c;15 级最低。 在表达式中&#xff0c;优先级较高的先于优先级…

【博客624】MAC地址表、ARP表、路由表(RIB表)、转发表(FIB表)

MAC地址表、ARP表、路由表(RIB表/FIB表) MAC地址表 MAC地址表是交换机等网络设备记录MAC地址和端口的映射关系&#xff0c;代表了交换机从哪个端口学习到了某个MAC地址&#xff0c;交换机把这个信息记录下来&#xff0c;后续交换机需要转发数据的时候就可以根据报文的目的MAC地…

【新星计划-2023】什么是ARP?详解它的“解析过程”与“ARP表”。

一、什么是ARP ARP&#xff08;地址解析协议&#xff09;英文全称“Address Resolution Protocol”&#xff0c;是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机&#xff0c;并接收返回消息&#xff0c;以此确…

ARP表 MAC表 路由表

ARP表是一个动态表&#xff0c;存储在计算机当中&#xff0c;目的是做一个ip地址与mac地址的对应。 假设在同一子网段&#xff0c;计算机A与计算机B通信 计算机A的ip地址192.168.0.1 MAC地址AA-AA-AA-AA-AA-AA 计算机B的ip地址已知192.168.0.2 MAC地址未知 那么计算机A就要…

Linux上ARP表,路由表的解释

为厘清数据在网络中的传输流向和具体的实现过程&#xff0c;现对ARP表&#xff0c;路由表进行学习如下。 ARP&#xff08;Address Resolution Protocol&#xff09;地址解析协议。IP数据包经常通过以太网进行发送&#xff0c;以32位的IP地址作为源/目的地址。但是以太网设备不能…

Windows7 arp表删除方法

Windows7 arp表删除方法 1 使用arp命令删除2 使用其他命令删除 Winsows7系统删除arp表有很多方法&#xff0c;这里介绍两种简单的方法&#xff0c;都是直接使用命令提示符应用&#xff08;cmd&#xff09;进行删除。 1 使用arp命令删除 1.打开cmd&#xff1a;直接在搜索中搜索…

FDB表-ARP表-路由表

简介 二层转发通过查询FDB表实现&#xff0c;不对报文做任何修改。三层转发通过查询路由表和arp表实现&#xff0c;路由表确定出接口&#xff0c;然后以出接口的MAC作为报文的源MAC&#xff1b;以报文的目的IP查询arp表获取下一跳MAC&#xff0c;以该MAC作为报文的目的MAC; 因…

转发表(MAC表)、ARP表、路由表总结

全文概要 计算机网络中一个关键步骤在于通信路径上不同节点对于流经本节点的数据包转发&#xff0c;常见的交换设备主要是交换机(第二层、三层)和路由器(第三层)&#xff0c;在实际运行时&#xff0c;它们各自维护一些表结构帮助完成数据包的正确寻址与转发&#xff0c;本文详…

Mac地址表、ARP表、路由表

一、Mac地址表。 Mac地址表记录了Mac地址和对应接口的关系&#xff0c;如图1-1所示。 图1-1 Mac地址表代表了交换机从某个接口学习到了它的Mac地址并记录下来&#xff0c;后续交换机如果要转发数据则可通过报文的Mac地址对应Mac地址表来转发数据。 二、ARP表。 ARP表记录着路…

ARP表、MAC表、路由表是什么

最近学习网络知识&#xff0c;租了一个3A服务器用来做实验&#xff0c;很方便&#xff0c;有兴趣后台私信我 1、ARP表 提起ARP表必然先想起ARP&#xff08;address resolution protocol&#xff09;协议&#xff0c;地址解析协议。 在实际应用中&#xff0c;我们经常遇到这样的…

MAC地址表、ARP表和路由表详解

一&#xff1a;MAC地址表详解 说到MAC地址表&#xff0c;就不得不说一下交换机的工作原理了&#xff0c;因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表&#xff0c;交换机就是根据这张表负责将数据帧传输到指定的…