Python基础之运算符操作
在Python中,运算符的作用就是用于执行各种的运算操作,常见的运算符有算数运算符、比较运算符、逻辑运算符、赋值运算符、成员运算符、身份运算符等。下面我们就来看看在Python中这些运算的详细操作。
算术运算符
算术运算符是用来执行一些基本的数学运算操作,有如下一些。
- +:加法
- -:减法
- *:乘法
- /:除法
- //:整除(取商的整数部分)
- %:取模(取商的余数)
- **:幂运算(指数)
代码如下所示。
# 加法运算符示例
a = 5
b = 3
result = a + b # 将变量a和b相加,结果赋值给result
print("加法运算结果:", result) # 输出:8# 减法运算符示例
a = 8
b = 3
result = a - b # 将变量a减去b,结果赋值给result
print("减法运算结果:", result) # 输出:5# 乘法运算符示例
a = 4
b = 5
result = a * b # 将变量a和b相乘,结果赋值给result
print("乘法运算结果:", result) # 输出:20# 除法运算符示例
a = 10
b = 3
result = a / b # 将变量a除以b,结果赋值给result
print("除法运算结果:", result) # 输出:3.3333333333333335# 整除运算符示例
a = 10
b = 3
result = a // b # 将变量a除以b,结果取整数部分,赋值给result
print("整除运算结果:", result) # 输出:3# 取模运算符示例
a = 10
b = 3
result = a % b # 取a除以b的余数,结果赋值给result
print("取模运算结果:", result) # 输出:1# 幂运算符示例
a = 2
b = 3
result = a ** b # 求a的b次方,结果赋值给result
print("幂运算结果:", result) # 输出:8
以上就是Python中的算数运算符的基本操作。可以用这些算术运算符实现基本的数学运算。这里需要注意,当两个操作数都是整数时,除法运算符 / 将返回浮点数结果,即使能整除也会返回浮点数。如下所示,如果想要执行整除操作,应使用整除运算符 //
# 除法运算符示例
a = 10
b = 3
result = a / b # 返回浮点数结果
print(result) # 输出:3.3333333333333335result = a // b # 返回整数结果
print(result) # 输出:3
在进行取模操作的时候,取模运算符 % 返回的结果的符号与被除数的符号相同。如果被除数是正数,结果也是正数;如果被除数是负数,结果也是负数。结果如下所示。
# 取模运算符示例
a = 10
b = 3
result = a % b # 取a除以b的余数
print(result) # 输出:1a = -10
b = 3
result = a % b # 取a除以b的余数
print(result) # 输出:2
在进行浮点数运算的过程中,由于浮点数的存储方式,可能会出现精度丢失的问题。所以,在比较浮点数时应该使用近似相等的方式,而不是直接使用 == 操作符。在进行整数操作的时候,也可能会出现数据溢出的情况,特别是在超出了计算机的表数范围之后,如果是需要进行一些大数的处理,那么我们可以使用Python提供的大数类型来进行操作,代码如下所示。
# 浮点数精度问题示例
a = 0.1 + 0.2
b = 0.3
print(a == b) # 输出:False,因为存在浮点数精度问题# 使用近似相等的方式进行比较
epsilon = 1e-10 # 定义一个很小的值
print(abs(a - b) < epsilon) # 输出:True# 整数溢出问题示例
a = 2 ** 1000 # 计算2的1000次方
print(a) # 输出一个非常大的整数b = a * a # 进行整数运算,可能会出现整数溢出问题
print(b) # 输出:OverflowError: int too large to convert to float
比较运算符
在Python中比较运算符,主要是用来比较两个数据操作之间的关系,其操作返回值使用布尔类型来表示。常见的比较运算符如下所示。
- ==:等于
- !=:不等于
- <:小于
- >:大于
- <=:小于等于
- >=:大于等于
代码实现如下所示。
# 等于运算符示例
a = 5
b = 5
result = a == b # 检查a和b是否相等,结果赋值给result
print("等于运算结果:", result) # 输出:True# 不等于运算符示例
a = 5
b = 10
result = a != b # 检查a和b是否不相等,结果赋值给result
print("不等于运算结果:", result) # 输出:True# 小于运算符示例
a = 5
b = 10
result = a < b # 检查a是否小于b,结果赋值给result
print("小于运算结果:", result) # 输出:True# 大于运算符示例
a = 10
b = 5
result = a > b # 检查a是否大于b,结果赋值给result
print("大于运算结果:", result) # 输出:True# 小于等于运算符示例
a = 5
b = 5
result = a <= b # 检查a是否小于等于b,结果赋值给result
print("小于等于运算结果:", result) # 输出:True# 大于等于运算符示例
a = 10
b = 5
result = a >= b # 检查a是否大于等于b,结果赋值给result
print("大于等于运算结果:", result) # 输出:True
在进行比较运算符操作的过程中,需要注意比较的数据类型一定是一样的,如果数据类型不一样的话,Python会尝试将它们转换为一致的类型,然后进行比较。如果比较的数据类型不一致,可能会导致意外的结果,因此应确保进行比较的数据类型是一致的。如下所示。
# 数据类型的一致性示例
a = 5
b = '5'
result = a == b # 检查a和b是否相等,可能会返回False
print("比较结果:", result) # 输出:False
在对于浮点数的比较过程中,浮点数存在精度问题,因此在比较浮点数时应该使用近似相等的方式,而不是直接使用 == 操作符。当然这个时候我们可以使用一个很小的值(例如1e-10)作为误差范围,进行浮点数比较。如下所示。
# 浮点数的比较示例
a = 0.1 + 0.2
b = 0.3
epsilon = 1e-10 # 定义一个很小的值
result = abs(a - b) < epsilon # 使用近似相等的方式进行比较
print("比较结果:", result) # 输出:True
在进行复杂比较的时候,需要注意执行逻辑的优先级,这样可以保证比较之后的数据得到一个正确的结果,如果有不确定的情况可以通过添加括号的方式来明确指定表达式的执行顺序,这样可以得到一个准确的结果。如下所示。
e# 逻辑运算符优先级示例
a = 5
b = 10
c = 15
result = a < b and b < c # a < b < c,and 运算符优先级高于 <
print("比较结果:", result) # 输出:True
如何正确的理解和使用比较的结果,对于比较运算符来讲返回的是布尔值(True或False)应该正确理解比较结果的含义,以便根据结果执行相应的操作。如下所示
# 理解比较结果示例
a = 5
b = 10
result = a < b # 检查a是否小于b,结果为True
if result:print("a小于b")
else:print("a大于等于b")
逻辑运算符
逻辑运算符用来处理逻辑操作,其返回值为布尔类型,常见的逻辑运算符如下所示。
- and:逻辑与,如果两个条件都为真,则返回真。
- or:逻辑或,如果至少一个条件为真,则返回真。
- not:逻辑非,对条件取反。
代码如下所示。
# 逻辑与运算符示例
a = True
b = False
result = a and b # 检查a和b是否同时为True,结果赋值给result
print("逻辑与运算结果:", result) # 输出:False# 逻辑或运算符示例
a = True
b = False
result = a or b # 检查a和b是否有一个为True,结果赋值给result
print("逻辑或运算结果:", result) # 输出:True# 逻辑非运算符示例
a = True
result = not a # 对a取反,结果赋值给result
print("逻辑非运算结果:", result) # 输出:False# 组合运算示例
x = 10
y = 5
z = 20
result = (x > y) and (x < z) # 检查x是否大于y并且小于z,结果赋值给result
print("组合运算结果:", result) # 输出:True# 短路求值示例
a = True
b = False
result = a and (10 / 0) # 如果a为False,则(10 / 0)将抛出ZeroDivisionError异常,但因为短路求值,不会执行
print("短路求值结果:", result) # 输出:False
在逻辑与运算符 and 和逻辑或运算符 or 中,如果第一个条件已经能够确定整个表达式的值,则不再计算第二个条件,这种机制称为短路求值。短路求值的机制有助于编写更加高效和安全的代码,但同时也需要注意可能由于短路求值带来的一些意外行为。如下所示。
# 短路求值示例
a = False
result = a and (10 / 0) # 如果a为False,则(10 / 0)将抛出ZeroDivisionError异常,但因为短路求值,不会执行
print("短路求值结果:", result) # 输出:False
逻辑运算符执行也是有自己的优先级的,所以在一些复杂的逻辑操作中,需要保证逻辑运算符的优先级,这样可以确保表达式得到正确的结果,同时可以通过括号的方式来制定逻辑运算符的求值顺序。如下所示。
# 逻辑运算符优先级示例
x = 10
y = 5
z = 20
result = (x > y) and (x < z) # 检查x是否大于y并且小于z,结果赋值给result
print("组合运算结果:", result) # 输出:True
在使用逻辑运算符时,Python会进行布尔值的隐式转换,将非布尔类型的值转换为布尔值(True或False),我们应该清楚地了解隐式转换的规则,以避免由于类型转换带来的意外结果。如下所示。
# 布尔值的隐式转换示例
a = 10
b = 0
result = a and b # 如果a为真,则结果为b;如果a为假,则结果为a
print("隐式转换结果:", result) # 输出:0
理解含义写出正确的判断,实现正确的业务逻辑,如下所示。
# 理解逻辑表达式的含义示例
is_adult = True
has_license = False
result = is_adult and not has_license # 检查是否成年并且没有驾照
if result:print("可以考取驾照")
else:print("不能考取驾照")
使用逻辑运算符时,需要注意短路求值、逻辑运算符优先级、布尔值的隐式转换和理解逻辑表达式的含义。这些注意事项有助于编写清晰、正确和高效的逻辑表达式。
相关文章:
Python基础之运算符操作
在Python中,运算符的作用就是用于执行各种的运算操作,常见的运算符有算数运算符、比较运算符、逻辑运算符、赋值运算符、成员运算符、身份运算符等。下面我们就来看看在Python中这些运算的详细操作。 算术运算符 算术运算符是用来执行一些基本的数学运…...
【busybox记录】【shell指令】uniq
目录 内容来源: 【GUN】【uniq】指令介绍 【busybox】【uniq】指令介绍 【linux】【uniq】指令介绍 使用示例: 去除重复行 - 默认输出 去除重复行 - 跳过第n段(空格隔开),比较n1以后的内容,去重 去…...
Nginx从入门到精通速成
文章目录 一. **Nginx** **的简介**1.1 什么是 **nginx**1.2 正向代理1.3 反向代理1.4 **负载均衡**1.5 动静分离 二. **Nginx** **的安装**三. **Nginx** **的常用的命令**四. **Nginx** **的配置文件**五. **Nginx** **配置实例**反向代理实例**1**5.1 实现效果5.2 准备工作5…...
Flutter笔记:Widgets Easier组件库(4)使用按钮组
Flutter笔记 Widgets Easier组件库(4):使用按钮组 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress…...
Docker常用命令 镜像库设置
Docker常用命令 & 镜像库设置 1. 镜像操作2. 容器操作3. 网络操作4. Docker Compose操作5. Docker volume操作6. Docker run介绍7. 镜像库设置 1. 镜像操作 列出本地所有的镜像 docker images从远程仓库拉取镜像到本地 docker pull <image_name>删除本地的指定镜像…...
无人零售,重塑购物新纪元
在这个快节奏的时代,科技的每一次跃进都在悄无声息地改变着我们的生活方式。而今,无人零售正以雷霆之势,颠覆传统购物模式,为我们带来前所未有的便捷与智能体验。想知道无人零售如何彻底改变我们的购物方式吗?跟随我&a…...
【图片格式转换】ICO、JPG、JPEG、PNG图片格式在线免费转换
ICO、JPG、JPEG、PNG图片格式转换 图片格式转换 https://orcc.online 支持ICO、JPG、JPEG、PNG等 主页 https://www.orcc.online 其他工具 pdf在线免费转word文档 https://orcc.online/pdf 时间戳转换 https://orcc.online/timestamp Base64 编码解码 https://orcc.onlin…...
通过自然语言处理执行特定任务的AI Agents;大模型控制NPC执行一系列的动作;个人化的电子邮件助手Panza
✨ 1: OpenAgents 通过自然语言处理执行特定任务的AI代理 OpenAgents是一个开放平台,旨在使语言代理(即通过自然语言处理执行特定任务的AI代理)的使用和托管变得更加便捷和实用。它特别适合于日常生活中对数据分析、工具插件获取和网络浏览…...
4.2 JavaScript语法
4.2.1 JavaScript大小写 在JavaScript中大小写是严格区分的,无论是变量、函数名称、运算符和其他语法都必须严格按照要求的大小写进行声明和使用。例如变量hello与变量HELLO会被认为是完全不同的内容。 4.2.2 JavaScript分号 很多编程语言(例如C、Java和…...
面试二十五、remove和earse的区别
vector中erase的作用是删除掉某个位置position或一段区域(begin, end)中的元素,减少其size,返回被删除元素下一个元素的位置。 vector中remove的作用是将范围内为val的值都remove到后面,返回新的_last值(非val部分的en…...
普乐蛙元宇宙VR体验馆设备集体亮相VR文旅景区展
普乐蛙全国巡展又双叒叕开始了! 这次来到的是“好客山东”↓↓ 山东2024休闲旅游产业展 4月25日至27日,2024休闲旅游产业展在临沂国际博览中心举办。本次展会以“潮购文旅好品,乐享时尚生活”为主题,汇聚全国文旅产业上下游500多家企业、上万…...
北京大学-知存科技存算一体联合实验室揭牌,开启知存科技产学研融合战略新升级
5月5日,“北京大学-知存科技存算一体技术联合实验室”在北京大学微纳电子大厦正式揭牌,北京大学集成电路学院院长蔡一茂、北京大学集成电路学院副院长鲁文高及学院相关负责人、知存科技创始人兼CEO王绍迪、知存科技首席科学家郭昕婕博士及企业研发相关负…...
项目总结(一)docker总结
目录 一、引言 二、docker ------>2.1、docker介绍 ------>2.2、与虚拟机的区别 ------>2.3、Docke基本概念 ------>2.4、Docker内部结构 ------>2.5、Windows上使用docker ------>2.6、Linux上使用Docker ------>2.7、Docker常用命令 ------&g…...
深圳比创达EMC|EMC一站式解决方案:助力电子产品电磁兼容性升级
在当今电子信息技术飞速发展的时代,电磁兼容性(EMC)问题日益凸显,成为制约电子产品性能和质量的关键因素。为了满足市场对EMC问题的迫切需求,EMC一站式解决方案应运而生,成为解决EMC问题的有效途径。 一、…...
万兆以太网MAC设计(11)完整UDP协议栈仿真
文章目录 前言一、模块接口二、IP模块与ARP模块之间的联系三、整体协议栈仿真总结: 前言 目前除了巨帧处理逻辑之外,所有的准备工作都已经结束了,先进行整体的功能验证。 一、模块接口 所有模块接口皆采用AXIS数据流的形式,其中…...
【牛客】【模板】差分
原题链接:登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 差分模板。 b[0]a[0]; b[1]a[1]-a[0]; b[2]a[2]-a[1]; ...... b[n-1]a[n-1]-a[n-2]; b[n]a[n]-a[n-1]; 差分标记:b[l]k,b…...
鸿蒙内核源码分析(中断管理篇) | 江湖从此不再怕中断
关于中断部分系列篇将用三篇详细说明整个过程. 中断概念篇 中断概念很多,比如中断控制器,中断源,中断向量,中断共享,中断处理程序等等.本篇做一次整理.先了解透概念才好理解中断过程.用海公公打比方说明白中断各个概念…...
php使用rabbitmq
这里使用的是 php-amqplib composer require php-amqplib/php-amqplib生产端send.php <?phprequire_once "./vendor/autoload.php";use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage;//交换机名称 $exc_name exchange.can…...
前端发起网络请求的几种常见方式(XMLHttpRequest、FetchApi、jQueryAjax、Axios)
摘要 前端发起网络请求的几种常见方式包括: XMLHttpRequest (XHR): 这是最传统和最常见的方式之一。它允许客户端与服务器进行异步通信。XHR API 提供了一个在后台发送 HTTP 请求和接收响应的机制,使得页面能够在不刷新的情况下更新部分内容…...
通过氧气退火增强β-Ga₂O₃二极管.中国科技大学和河北半导体研究所的研究人员在这一特定领域取得了最新重大进展
上图所示:(a)增加台面有助于提高β-Ga2O3肖特基势垒二极管的阻断电压(b)。 氧气退火和自对准台面终端使β-Ga2O3二极管进一步走向商业化。 虽然β-Ga2O3电力电子技术已经取得了长足的进步,但仍然存在挑战&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...
【Qt】控件 QWidget
控件 QWidget 一. 控件概述二. QWidget 的核心属性可用状态:enabled几何:geometrywindows frame 窗口框架的影响 窗口标题:windowTitle窗口图标:windowIconqrc 机制 窗口不透明度:windowOpacity光标:cursor…...
