【Python系列】Python 中的运算符:基础与高级用法

news2024/11/16 11:34:52

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 1. 运算符的分类
    • 2. 算术运算符
    • 3. 比较运算符
    • 4. 逻辑运算符
    • 5. 赋值运算符
    • 6. 位运算符
    • 7. 成员运算符和身份运算符
    • 8. 高级用法
    • 9. 结语

Python,作为一种简洁而强大的编程语言,拥有丰富的运算符,它们是编程中不可或缺的元素。本文将详细介绍 Python 中的运算符,包括它们的分类、用法以及一些高级技巧。

1. 运算符的分类

Python 中的运算符可以分为以下几种类型:

  • 算术运算符:用于执行数学运算,如加(+)、减(-)、乘(*)、除(/)、模(%)、幂(**)等。
  • 比较运算符:用于比较两个值,如等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)。
  • 逻辑运算符:用于执行逻辑运算,如与(and)、或(or)、非(not)。
  • 赋值运算符:用于赋值操作,如简单赋值(=)、加等于(+=)、减等于(-=)等。
  • 位运算符:用于位级操作,如按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)。
  • 成员运算符:用于测试成员资格,如属于(in)、不属于(not in)。
  • 身份运算符:用于比较两个对象的身份,如恒等(is)、非恒等(is not)。
    在这里插入图片描述

2. 算术运算符

算术运算符是最基本的运算符,用于执行数学运算。以下是一些常用的算术运算符及其用法:

  • +:加法运算符,用于计算两个数的和。

    a = 5
    b = 3
    result = a + b  # 结果为 8
    
  • -:减法运算符,用于计算两个数的差。

    a = 5
    b = 3
    result = a - b  # 结果为 2
    
  • *:乘法运算符,用于计算两个数的乘积。

    a = 5
    b = 3
    result = a * b  # 结果为 15
    
  • /:除法运算符,用于计算两个数的商。

    a = 10
    b = 2
    result = a / b  # 结果为 5.0
    
  • %:模运算符,用于计算除法的余数。

    a = 10
    b = 3
    result = a % b  # 结果为 1
    
  • **:幂运算符,用于计算一个数的幂。

    a = 2
    b = 3
    result = a ** b  # 结果为 8
    

3. 比较运算符

比较运算符用于比较两个值,并根据比较结果返回布尔值(TrueFalse)。

  • ==:等于运算符,检查两个值是否相等。

    a = 5
    b = 5
    result = a == b  # 结果为 True
    
  • !=:不等于运算符,检查两个值是否不相等。

    a = 5
    b = 3
    result = a != b  # 结果为 True
    
  • ><>=<=:分别用于比较值的大小。

    a = 5
    b = 3
    result = a > b  # 结果为 True
    result = a < b  # 结果为 False
    result = a >= b  # 结果为 True
    result = a <= b  # 结果为 False
    

4. 逻辑运算符

逻辑运算符用于执行布尔逻辑运算。

  • and:逻辑与运算符,只有当两个操作数都为真时,结果才为真。

    a = True
    b = True
    result = a and b  # 结果为 True
    
  • or:逻辑或运算符,只要有一个操作数为真,结果就为真。

    a = False
    b = True
    result = a or b  # 结果为 True
    
  • not:逻辑非运算符,反转操作数的布尔值。

    a = True
    result = not a  # 结果为 False
    

5. 赋值运算符

赋值运算符用于给变量赋值或修改变量的值。

  • =:简单赋值运算符,将右侧的值赋给左侧的变量。

    a = 5  # a 的值为 5
    
  • +=-=*=/=%=**=:复合赋值运算符,结合了运算和赋值。

    a = 5
    a += 3  # 等同于 a = a + 3,a 的值为 8
    a -= 1  # 等同于 a = a - 1,a 的值为 7
    a *= 2  # 等同于 a = a * 2,a 的值为 14
    a /= 4  # 等同于 a = a / 4,a 的值为 3.5
    a %= 2  # 等同于 a = a % 2,a 的值为 1
    a **= 3  # 等同于 a = a ** 3,a 的值为 1
    

6. 位运算符

位运算符用于对整数的二进制位进行操作。

  • &:按位与运算符,对应位都为 1 时,结果位才为 1。

    a = 0b1010  # 二进制表示
    b = 0b1100
    result = a & b  # 结果为 0b1000
    
  • |:按位或运算符,至少有一个位为 1 时,结果位就为 1。

    a = 0b1010
    b = 0b1100
    result = a | b  # 结果为 0b1110
    
  • ^:按位异或运算符,对应位不同则结果位为 1。

    a = 0b1010
    b = 0b1100
    result = a ^ b  # 结果为 0b0110
    
  • ~:按位取反运算符,反转操作数的每一位。

    a = 0b1010
    result = ~a  # 结果为 -0b1011(Python中负数使用补码表示)
    
  • <<>>:左移和右移运算符,分别将位向左或向右移动指定的位数。

    a = 0b1010
    result = a << 2  # 结果为 0b101000
    result = a >> 1  # 结果为 0b101
    

7. 成员运算符和身份运算符

  • in:检查一个值是否存在于序列中。

    a = [1, 2, 3]
    result = 2 in a  # 结果为 True
    
  • not in:检查一个值是否不存在于序列中。

    a = [1, 2, 3]
    result = 4 not in a  # 结果为 True
    
  • is:检查两个引用是否指向同一个对象。

    a = [1, 2, 3]
    b = a
    result = a is b  # 结果为 True
    
  • is not:检查两个引用是否指向不同对象。

    a = [1, 2, 3]
    b = [1, 2, 3]
    result = a is not b  # 结果为 True(即使内容相同,也是不同的对象)
    

8. 高级用法

除了基本用法,Python 的运算符还可以用于更高级的操作,例如:

  • 链式比较:可以连续使用比较运算符,进行多个比较。

    a = 10
    

    result = 5 < a < 15 # 结果为 True

    
    
  • 运算符重载:Python 允许开发者定义或修改特殊方法,从而改变某些运算符的行为。

    class Vector:
        def __init__(self, x, y):
            self.x = x
            self.y = y
    
        def __add__(self, other):
            return Vector(self.x + other.x, self.y + other.y)
    
    v1 = Vector(1, 2)
    v2 = Vector(3, 4)
    v3 = v1 + v2  # 使用了重载的 + 运算符
    
  • 生成器表达式:使用圆括号()代替花括号{},可以创建一个生成器表达式,用于懒惰迭代。

    squares = (x**2 for x in range(10))
    for square in squares:
        print(square)
    

在这里插入图片描述

9. 结语

Python 的运算符是构建程序逻辑的基础,它们不仅提供了基础的数学和逻辑操作,还支持高级特性,如运算符重载和生成器表达式。掌握这些运算符的用法,可以帮助开发者编写出更加简洁、高效和强大的代码。随着 Python 语言的不断发展,运算符的用法和功能也在不断扩展,因此,持续学习和实践是提高编程技能的关键。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

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

相关文章

1898java疫情防控管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 疫情防控管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了java设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发…

使用LabVIEW进行大数据数组操作的优化方法

针对大数据量数组操作&#xff0c;传统的内存处理方法可能导致内存不足。通过LabVIEW的图像批处理技术&#xff0c;可以有效地进行大数据数组操作&#xff0c;包括分块处理、并行处理和内存优化等。这种方法能显著提高处理效率和系统稳定性。 图像批处理的优势 内存优化&#…

navi_cat查看数据库的连接密码

Navi_Cat 建立连接&#xff0c;来访问数据库。可惜&#xff0c;忘记了数据库密码&#xff0c;没事&#xff0c;这么搞。 首先先导出链接&#xff0c;再从链接里取出被加密的密码&#xff0c;然后找个可在线运行PHP的网站&#xff08;代码在线运行 - 在线工具&#xff09;&…

ROS云课三分钟外传之CoppeliaSim_Edu_V4_1_0_Ubuntu16_04

三分钟热度试一试吧&#xff0c;走过路过不要错过。 参考之前&#xff1a; 从云课五分钟到一分钟之v-rep_pro_edu_v3_6_2-CSDN博客 git clone https://gitcode.net/ZhangRelay/v-rep_pro_edu_v3_6_2_ubuntu16_04.gittar -xf v-rep_pro_edu_v3_6_2_ubuntu16_04/V-REP_PRO_EDU…

Python爬取城市空气质量数据

Python爬取城市空气质量数据 一、思路分析1、寻找数据接口2、发送请求3、解析数据4、保存数据二、完整代码一、思路分析 目标数据所在的网站是天气后报网站,网址为:www.tianqihoubao.com,需要采集武汉市近十年每天的空气质量数据。先看一下爬取后的数据情况: 1、寻找数据…

网络空间安全数学基础·多项式环与有限域

5.1 多项式环&#xff08;掌握&#xff09; 5.2 多项式剩余类环&#xff08;理解&#xff09; 5.3 有限域&#xff08;熟练&#xff09; 5.1 多项式环 定义&#xff1a;设F是一个域&#xff0c;称是F上的一元多项式&#xff0e; 首项&#xff1a;如果an≠0&#xff0c;则称 a…

618数码产品有什么推荐?四大2024“宝藏”数码产品推荐!

随着618购物节的热情逐渐升温&#xff0c;你是否在繁多且诱人的商品海洋中迷失方向&#xff0c;难以找到那最心仪的宝贝&#xff1f;团团在此特别为你精心挑选了一系列经过亲身体验的优质好物。这些推荐不仅时尚前沿&#xff0c;更贴合你的日常生活需求&#xff0c;确保实用与品…

A6500-LC LVDT 前置器,用于A6500-UM, 导轨安装

电源 22.5V to 32VDC <30mA <0.1%/V <60V( 使用SELV/PELV 供电电源) 约2.2Vrms,5kHz IP20 IEC 60529 -35C to 75C(-31F to 167F) -35C to 85C(-31F to 185F) 电流损耗 供电电压对 运行温度 存储温度 0.35mm(0.014 in ),10 to 55Hz 15g 根据 EN 60068-2-27 根据IEC 613…

Ubuntu server 24 (Linux) sudo 免输密码

1 sudo 使用要输入密码&#xff0c;费时费力。 2 sudo命令免输密码&#xff0c;需要修改/etc/sudoers文件 #本文以test用户为例,#允许不需要输入密码执行 sudo vi /etc/sudoers test ALL(ALL) NOPASSWD: ALL %sudo ALL(ALL:ALL) ALL --> #%sudo ALL(ALL:ALL) ALL#所有…

数据中心网络架构设计与优化

数据中心是现代企业和组织的核心基础设施&#xff0c;它们用于存储、处理和传输大量的数据和信息。为了满足不断增长的数据需求和提供可靠的服务&#xff0c;设计和优化数据中心网络架构至关重要。 首先&#xff0c;数据中心网络架构设计需要考虑可扩展性。随着业务的增长&…

技术对比:eMMC、SD NAND与NOR Flash存储特性详解

在电子技术迅猛前进的今天&#xff0c;存储技术成为了整个行业发展的基石。SD NAND、eMMC和NOR Flash&#xff0c;这三种存储技术各自以其独特的架构和特性&#xff0c;满足了多样化的存储需求。让我们来看看它们之间的一些关键对比&#xff1a; 1. 存储单元架构&#xff1a; S…

gitlab之cicd的gitlab-runner cicd实践-rpm离线安装

目录 概述资源官方资源离线资源 操作环境验证gitlab-runner安装注意事项重启向gitlab注册CICD流程测试 概述 gitlab此文使用rpm离线安装的方式&#xff0c;使用 gitlab-runner dockerfile构建运行环境&#xff1a; 如有兴趣可以参考这篇文章   gitlab选择 docker-compose 执行…

前端面试题】—53道常见NodeJS基础面试题(附答案)

Node. js是一个不错的选择&#xff0c;它是基于JavaScript语法的一套服务器端&#xff08;后端&#xff09;语言。想要在企业中做得更好&#xff0c;开发者需要更多地了解它&#xff0c;并掌握它的有关用法。 1、你了解 Node. js吗&#xff1f; Node. js是一个基于 Chrome v8引…

移动安全赋能化工能源行业智慧转型

随着我国能源化工企业的不断发展&#xff0c;化工厂中经常存在火灾爆炸的危险&#xff0c;特别是生产场所&#xff0c;约有80%以上生产场所区域存在爆炸性物质。而目前我国化工危险场所移动通信设备的普及率高&#xff0c;但是对移动通信设备的安全防护却有所忽视&#xff0c;包…

R语言探索与分析19-CPI的分析和研究

一、选题背景 CPI&#xff08;居民消费价格指数&#xff09;作为一个重要的宏观经济指标&#xff0c;扮演着评估通货膨胀和居民生活水平的关键角色。在湖北省这个经济活跃的地区&#xff0c;CPI的波动对于居民生活、企业经营以及政府宏观经济政策制定都具有重要的影响。因此&a…

信息学奥赛初赛天天练-22-C++基础关键字、进制转换、结构体与联合体的实用技巧大揭秘

PDF文档公众号回复关键字:20240607 单项选择题&#xff08;共15题&#xff0c;每题2分&#xff0c;共计30分&#xff1a;每题有且仅有一个正确选项&#xff09; 1 在C中&#xff0c;下面哪个关键字用于声明一个变量&#xff0c;其值不能被修改&#xff1f;&#xff08; &#…

C#上位机开发

目录 一、上位机简介二、C#语法三、新建VS工程四、WinForm控件4.1 属性4.2 事件4.3 窗体方法4.4 常用控件4.5 布局 五、Serial上位机5.1 UI界面设计5.2 功能设计 六、项目打包成安装包6.1 前提准备6.2 打包步骤 一、上位机简介 在单片机项目开发中&#xff0c;上位机也是一个很…

因为宇宙一片漆黑,所以地球才有昼夜之分,宇宙为什么是黑的?

因为宇宙一片漆黑&#xff0c;所以地球才有昼夜之分&#xff0c;宇宙为什么是黑的&#xff1f; 地球为何会有昼夜之分&#xff1f; 乍一看&#xff0c;这个问题很是简单&#xff0c;当然是因为地球一直在自转了&#xff0c;当地球的一部分被太阳照射时就是白昼&#xff0c;而…

【中间件系列】浅析redis是否适合做消息队列

文章目录 一、简单的list消息队列1.命令示例2.伪代码示例3.方案优劣 二、Pub/Sub发布订阅1.消息丢失2.消息堆积 三、相对成熟的Stream1.redis命令介绍2.多消费者组测试3.Stream会持久化吗&#xff1f;4.消息堆积如何解决&#xff1f; 总结 用redis也是比较久了&#xff0c;并且…

程序员的职业素养:走向成功的关键

程序员的职业素养&#xff1a;走向成功的关键 引言 在信息时代&#xff0c;程序员扮演着至关重要的角色。他们推动着技术创新&#xff0c;构建起我们赖以生存的数字世界。然而&#xff0c;仅仅精通技术&#xff0c;并不能确保一个程序员的成功。优秀的职业素养&#xff0c;是程…