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

news2024/10/6 20:26:00

文章目录

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


前言

运算符是一些人为定义的特殊符号,比如我们生活当中最常见的+ 、-、×、÷,它们主要用于数学计算、比较大小和逻辑运算等等。那这些运算符在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://www.coloradmin.cn/o/125541.html

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

相关文章

数字孪生医院的智能化运营平台建设内容

随着国务院办公厅《关于推动公立医院高质量发展的意见》印发&#xff0c;高质量发展已成为医院发展的主旋律。当前市场经济正处于增长速度换挡期&#xff0c;医院面临着转型发展的紧迫性&#xff0c;运 用新一代信息技术促进医院管理体系与管理能力现代化发展势在必行。基于数字…

读论文---DETR

DETR 深度学习之目标检测(十一)--DETR详解_木卯_THU的博客-CSDN博客_detr 下面内容取材自上述博客和唐宇迪视频

20221229英语学习

今日新词 premier adj.首要的, 最著名的, 最成功的, 第一的 microscopic adj.极小的&#xff1b;需用显微镜观察的&#xff1b;使用显微镜的 complaint n.抱怨&#xff1b;埋怨&#xff1b;投诉&#xff1b;控告 moth n.蛾 prototype n.原型&#xff0c;雏形 tournament …

面试官:自动化测试都没弄明白,你怎么敢来面试 “ 软件测试开发 ” 的?

面试一直都是一个热门话题&#xff0c;测试员当然也逃不过~纵使你是一个技能全部满点的超优秀测试员&#xff0c;卡在面试这一关也是万万不可的。特别是大厂的测试员&#xff0c;他们面试所问的东西&#xff0c;你在学校通常接触不道&#xff0c;所以没有哪个应届生是一毕业啥也…

关于Nginx 用户认证、SSL证书生成配置的一些笔记

写在前面 分享一些 Nginx 用户认证、SSL 加密配置的笔记博文内容涉及 Nginx 用户认证、SSL 加密配置 Demo通过 OpenSSL 生成使用 SSL 证书、私钥和 CSR Demo 理解不足小伙伴帮忙指正 这世界的一面至始至终是表象&#xff0c;正如另一面至始至终是意志 -----《作为意志和表象的世…

涨价都涨疯了

大家好&#xff0c;我是校长。给大家推荐个好东西&#xff0c;可能大家能用得着。最近新冠肺炎闹得人心惶惶&#xff0c;噢&#xff0c;不对&#xff0c;改名了&#xff0c;叫&#xff1a;新冠感染了。只要专家建议个什么东西&#xff0c;什么东西绝对准脱销&#xff0c;而且是…

计算机软考高级好考吗?需要备考多久?

不简单&#xff0c;整体的通过率只有15%左右。 软考高级一共有五个科目。 信息系统项目管理师&#xff1a;零基础&#xff0c;有考证需求的或者从事管理的人员&#xff0c;项目经理可以考这个。 系统分析师&#xff1a;适合在项目开发过程中定制需求规格说明书&#xff0c;和编…

[内网渗透]—CS生成office宏钓鱼

简介 ​ 宏是一个批量处理程序命令,正确地运用它可以提高工作效率。微软的office软件允许用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力。如完打开word文件同时要打开某个文件的功能,必须要自己编写一段称之为宏的脚本。具体做法是在“工具”菜单“宏”-“…

图的简要介绍

1、图的基本概念 &#xff08;1&#xff09;定义 图是一种较为复杂的非线性结构。 图就是由顶点的有穷非空集合和顶点之间的边组成的集合。通常表示为G(V,E)&#xff0c;其中&#xff0c;G表示一个图&#xff0c;V表示顶点的集合&#xff0c;E表示边的集合。 &#xff08;2&…

Cookie和Session的区别

&#x1f49f;&#x1f49f;前言 ​ 友友们大家好&#xff0c;我是你们的小王同学&#x1f617;&#x1f617; 今天给大家打来的是 Cookie和Session的区别 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞&#x1f44d; 收藏⭐ 评论&#x1f4c4; 小王的主页…

北京智和信通:IT资产全生命周期运维监控管理方案

IT资产是企业开展正常业务运营和拓展不可或缺的资源&#xff0c;也是企业财产的重要载体。随着信息科技的快速发展&#xff0c;各企业对IT资产的依赖逐渐增强&#xff0c;IT资产的可靠性和有效性面临着愈来愈大的挑战。例如IT资产管理混乱&#xff0c;通过维护手工台账的方式进…

vue入门(一)搭建vue项目,基础显示,指令

之前接触过vue&#xff0c;但是一直不是十分清晰&#xff0c;学的云里雾里&#xff0c;最近打算再次系统的整理一下&#xff0c;重新入门。还是根据vue官方文档一步一步的来&#xff0c;但是是属于简化的那种&#xff0c;会把我的学习过程都记录下来。 1.vue项目的搭建&#xf…

linux、window跨平台的用vs编程

跨平台的用vs编程 准备 创建linux的console程序 工具 – 选项&#xff0c;找到跨平台 连接linux的服务 注意&#xff0c;需要在linux系统那边配置以下的命令 sudo apt install build-essential 验证编译器是否被成功安装 gcc --versionsudo apt install openssh-server …

基于stm32 的简单的智慧农业系统, 有上位机,有下位机

1. 实现的功能 1. 下位机&#xff08;stm32&#xff09; (keil 5 ) 1. 按键key1 中断控制 LED 3 的亮灭 2. 按键key2 中断控制 温湿度的获取&#xff0c; &#xff08;数据通过串口发送给 上位机&#xff09; 3. 智能检测温湿度是否超标&#xff0c; &#xff08;超标 开启警…

el-dialog实现拖拽功能示例代码

element UI中dialog组件经常会用到&#xff0c;如果能让其任意拖拽放到不同的位置就更好了&#xff0c;实现方法如下&#xff1a; dialogDraggable.js代码&#xff1a; import Vue from vue // v-dialogDrag: 弹窗拖拽 Vue.directive(dialogDrag, { bind(el, binding, vno…

【再学Tensorflow2】TensorFlow2的层次结构

TensorFlow2的层次结构Tensorflow的层次结构Tensorflow的低阶API示例线性回归模型准备数据定义模型训练模型DNN二分类模型准备数据定义模型训练模型Tensorflow的中阶API示例线性回归模型DNN二分类模型Tensorflow的高阶API示例线性回归模型定义模型训练模型DNN二分类模型定义模型…

微信小程序开发实战10_1 小程序支付业务介绍

移动支付已成大多数消费者日常使用的支付方式之一。移动支付拥有操作简单方便、无需带现金或银行卡&#xff0c;不用找零&#xff0c;目前超过四分之三的用户都在使用移动支付。小程序应用作为一个广泛使用的移动应用&#xff0c;自然也不会放弃移动支付这个大的蛋糕。本章将介…

opencv文件介绍

build&#xff1a;存放.h.hpp.lib文件 bin .dll etc&#xff1a;存放训练好的分类器&#xff0c;用于人脸识别 include&#xff1a;所有的头文件 opencv2 • calib3d&#xff1a;相机校准、姿态估计和三维重建 • core&#xff1a;核心功能模块 • dnn&#xff1a;深度学习模块…

docker(6):Docker网络

目录docker网络介绍docker网络模式常用命令docker网络原理自定义网络实战&#xff1a;redis主从部署docker网络介绍 实际只要我们启动docker&#xff0c;那么主机上就会产生一个名字为docker0的虚拟网桥。它在内核层连通了其他的物理或虚拟网卡&#xff0c;这就将所有容器和本…

【Apifox】Apifox导入knife4j文档

文章目录手动导入自动导入手动导入 在浏览器中打开knife4j文档地址&#xff0c;并按F12打开控制台&#xff1a; 复制api-docs这个接口的请求地址。打开Apifox >> 项目设置 >> 导入数据&#xff08;手动导入&#xff09; >> URL导入 >> 把接口的请求地…