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

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
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 = xself.y = ydef __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.mzph.cn/news/849184.shtml

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

相关文章

zabbix-agent如何版本回退降低?

文章目录 1&#xff0c;查看zabbix-agent版本号2&#xff0c;查看zabbix-server的版本号3&#xff0c;卸载已有的zabbix-agent4&#xff0c;找到与zabbix-server匹配版本的zabbix-agent5&#xff0c;安装zabbix-agent 5.0.42版本6&#xff0c;查看已安装的zabbix-agent的版本号…

力扣爆刷第148天之贪心算法五连刷(区间合并)

力扣爆刷第148天之贪心算法五连刷&#xff08;区间合并&#xff09; 文章目录 力扣爆刷第148天之贪心算法五连刷&#xff08;区间合并&#xff09;一、406. 根据身高重建队列二、452. 用最少数量的箭引爆气球三、435. 无重叠区间四、763. 划分字母区间五、56. 合并区间六、738.…

笔记-Python pip配置国内源

众所周知&#xff0c;Python使用pip方法安装第三方包时&#xff0c;需要从 https://pypi.org/ 资源库中下载&#xff0c;但是会面临下载速度慢&#xff0c;甚至无法下载的尴尬&#xff0c;这时&#xff0c;你就需要知道配置一个国内源有多么重要了&#xff0c;通过一番摸索和尝…

【AIOT-Robot】3D pos 相关

1. Mediapipe 3D detection 使用移动增强现实(AR)会话数据(session data),开发了新的数据pipeline。大部分智能手机现在都具备了增强现实的功能,在这个过程中捕捉额外的信息,包括相机姿态、稀疏的3D点云、估计的光照和平面。 利用相机的姿势、检测到的平面、估计的照明,来生…

vsCode双击文件才能打开文件,单击文件只能预览?

解决&#xff1a; 1、打开设置 2、搜索workbench.editor.enablePreview 3、更改为不勾选状态 4、关闭设置 效果&#xff1a; 现在单击一个文件时&#xff0c;将会在编辑器中直接打开&#xff0c;而非是预览状态。

(uniapp)简单带动画的tab切换效果

效果图 代码 <template><view class"tabBox"><view :style"{transform: translateX(${translateX})}" class"whiteBox"></view><view click"changeTab(k)" class"itemBox" v-for"(v,k) in…

【Java】代码块

代码块介绍 目录 1.代码块2.代码块分类静态代码块动态代码块 1.代码块 代码块是类的五大成分之一&#xff0c;包括成员变量、构造器、方法、代码块、内部类。 2.代码块分类 代码块分两种&#xff1a; 静态代码块 测试类 public class Test {public static void main(Stri…

LeetCode刷题 | Day 4 分割等和子集(Partition Equal Subset Sum)自底向上动态规划

LeetCode刷题 | Day 4 分割等和子集(Partition Equal Subset Sum)自底向上动态规划 文章目录 LeetCode刷题 | Day 4 分割等和子集(Partition Equal Subset Sum)自底向上动态规划前言一、题目概述二、解题方法2.1 一维表格的自底向上动态规划2.1.1 思路讲解2.1.2 伪代码 + 逐…

002.数据分析_Pandas初识

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

MySQL-权限管理(二)

一 host中的含义 /usr/local/mysql/bin/mysql -pLXYlxy2:024.#8u} -S /data/mysql/tmp/mysqld.sock select user,host,authentication_string from mysql.user; %:主要允许从任何主机连接到MySQL服务器&#xff0c;即外部连接localhost: 代表只允许本地主机连接到MySQL服务器&…

[AIGC] 详解Mockito - 简单易学的Java单元测试框架

在Java的世界中, 单元测试是一项非常重要的任务. Mockito作为一个强大灵活的mock框架&#xff0c;可以帮助我们有效的编写和管理我们的单元测试. 了解并掌握Mockito的使用对于提高我们的开发效率和保证我们的软件质量有着巨大的帮助. 文章目录 什么是Mockito?Mockito的核心API…

Spring Boot中整合Jasypt 使用自定义注解+AOP实现敏感字段的加解密

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

奥威BI零售数据分析方案的优缺点一览

奥威BI零售数据分析方案是一套基于BI大数据智能可视化分析系统&#xff0c;根据零售企业数据分析共性需求、业务特殊性量身打造&#xff0c;点击下载应用&#xff0c;立即将零售数据情况分析清楚&#xff0c;直观呈现。很多企业都是直接在该零售数据分析方案的基础上实现了智能…

mybatis动态SQL的if判断是否等于某个值查询条件无效

我们在使用mybaits时&#xff0c;经常使用if条件来做动态查询&#xff0c; 当查询条件是字符串类型时&#xff0c;要写不等于某个空的情况要考虑不等于null和不等于空字符串 当查询条件是日期类型或者long&#xff0c;Integer 等类型时&#xff0c;if条件里不能写不等于空字符串…

Junit(Java单元测试)

配置文件 要想使用 Junit 进行单元测试需要引入以下第三方库&#xff1a; 引入后可以使用 Test&#xff0c;BeforeEach等注解 <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api --><dependency><groupId>org.junit.jupiter<…

eclipse添加maven插件

打开eclipse菜单 Help/Install New SoftwareWork with下拉菜单选择 2022-03 - https://download.eclipse.org/releases/2022-03‘type filter text’搜索框中输入 maven选择 M2E - Maven Integration for Eclipse一路next安装&#xff0c;重启eclipseImport项目时&#xff0c;就…

ESP8266在阿里云上线(arduino)

电脑连接上ESP8266的板子 在arduino编写代码&#xff08;arduino按照之前的配置&#xff0c;已安装好esp的开发板和几个库ArduinoJson我选了5.的版本&#xff0c;PubSubclient,Crypto,AliyunIoTSDK并且修改pubsubclient的参数&#xff09; 在项目&#xff0c;加载库&#xff0c…

【RuoYi】如何解决Postman无法访问RuoYi中的接口数据

一、前言 最近&#xff0c;写项目要求需要将数据返回&#xff0c;指定的接口&#xff0c;并且需要使用Postman来测试接口数据&#xff0c;看是否能够请求到数据。然后项目用的是RuoYi的框架&#xff0c;RuoYi使用了SpringSecurity来做的安全框架&#xff0c;所以在访问的时候&a…

【Linux】ip命令详解

Linux网络排查 目录 一、ip命令介绍 1.1 ip命令简介 1.2 ip命令的由来 二、ip命令使用帮助 2.1 ip命令的help帮助信息 2.2 ip命令对象介绍 2.3 ip命令选项介绍 三、查看网络信息 3.1 显示当前网络接口信息 3.2 显示网络设备运行状态 3.3 显示详细设备信息 3.4 查看…

面向大模型的存储加速方案

参考&#xff1a;面向大模型的存储加速方案设计和实践-百度开发者中心 (baidu.com) 对于一个典型的训练来说&#xff0c;可能迭代多轮 epoch。在每个 epoch 内&#xff0c;首先需要对数据集进行随机打散&#xff0c;然后将打散后的数据划分为若干 batch&#xff0c;每读取一个 …