当前位置: 首页 > ds >正文

Python 运算符详解

Python 运算符详解

在 Python 中,运算符是执行操作的符号。它们可以用于执行数学运算、逻辑运算、位操作等任务。运算符可以根据其功能分为多个类别。

1. 算术运算符

算术运算符用于基本的数学计算,包括加法、减法、乘法、除法等操作。

常见算术运算符:

运算符描述示例
+加法3 + 2 结果是 5
-减法5 - 3 结果是 2
*乘法4 * 2 结果是 8
/除法9 / 3 结果是 3.0
//整除9 // 4 结果是 2
%取余9 % 4 结果是 1
**幂运算2 ** 3 3个2相乘的值结果是 8

示例:


a = 9
b = 4
print(a + b)   # 输出 13
print(a - b)   # 输出 5
print(a * b)   # 输出 36
print(a / b)   # 输出 2.25
print(a // b)  # 输出 2
print(a % b)   # 输出 1
print(a ** b)  # 输出 6561

2. 比较运算符

比较运算符用于比较两个值的大小、等价性或关系,并返回布尔值 TrueFalse

返回的True和Falese可以理解为对和错

3 == 3 可以理解为: 3是不是等于3 这句话肯定是对的 故而代码运行结果为:True

4 >= 5 可以理解为: 4是不是小于等于5 这句话肯定是错的 故而代码运行结果为:False

常见比较运算符:

运算符描述示例
==等于3 == 3 返回 True
!=不等于3 != 4 返回 True
>大于3 > 2 返回 True
<小于3 < 5 返回 True
>=大于等于3 >= 3 返回 True
<=小于等于4 >= 5 返回 False

示例:


x = 5
y = 3
print(x == y)  # 输出 False
print(x != y)  # 输出 True
print(x > y)   # 输出 True
print(x < y)   # 输出 False
print(x >= y)  # 输出 True
print(x <= y)  # 输出 False

3. 逻辑运算符 可以查看前几期的数据类型

逻辑运算符用于进行布尔运算,通常用于判断条件。

常见逻辑运算符:

运算符描述示例
and与运算(两边都是True才输出True)True and False 返回 False
or或运算(有一边为True即可)True or False 返回 True
not非运算(取相反值 为False则输出True,反之输出False)not True 返回 False

示例:


a = True
b = False
print(a and b)  # 输出 False
print(a or b)   # 输出 True
print(not a)    # 输出 False

4. 赋值运算符

赋值运算符用于将右侧的值赋给左侧的变量。

常见赋值运算符:

运算符描述示例
=赋值x = 10
+=加法赋值x += 5 可以理解为: x = x + 5
-=减法赋值x -= 5 可以理解为: x = x - 5
*=乘法赋值x *= 5 可以理解为: x = x * 5
/=除法赋值x /= 5 可以理解为: x = x / 5

示例:

x = 10
x += 5   # x 结果 15
x -= 3   # x 结果 12
x *= 2   # x 结果 24
x /= 4   # x 结果 6.0

5. 位运算符(不常用,了解即可)

位运算符是对整数的二进制位进行操作的运算符。计算机内部通常是以二进制的形式存储数据,因此位运算符直接对二进制位进行操作

常见位运算符:

运算符描述示例
&按位与(AND)(将两个数的二进制位逐位进行与操作,只有两个对应的二进制位都是 1 时,结果才是 1,否则为 0)5 & 3 返回 1
'按位与(or)(将两个数的二进制位逐位进行与操作,只有两个对应的二进制位都是 1 时,结果才是 1,否则为 0)5 & 3 返回 1
^按位异或(XOR)(将两个数的二进制位逐位进行异或操作,当两个二进制位不同(一个是 1,一个是 0)时,结果为 1,否则为 0)5 ^ 3 返回 6
~按位取反(NOT)(将一个数的所有二进制位反转,即 1001。对于负数,它会使用补码表示)~5 返回 -6
<<左移(Left Shift)(将二进制数的所有位向左移动指定的位数,左移相当于乘以 2 的相应次方)5 << 1 返回 10
>>右移Right Shift)(将二进制数的所有位向右移动指定的位数,右移相当于除以 2 的相应次方)5 >> 1 返回 2

示例:


a = 5    # 0101
b = 3    # 0011
print(a & b)  # 输出 1   (按位与)
print(a | b)  # 输出 7   (按位或)
print(a ^ b)  # 输出 6   (按位异或)
print(~a)     # 输出 -6  (按位取反)
print(a << 1) # 输出 10  (左移)
print(a >> 1) # 输出 2   (右移)

6. 成员运算符

成员运算符用于检查一个值是否存在于指定的序列(如字符串、列表等)中

常见成员运算符:

运算符描述示例
in存在于(理解为:字符串a存在于字符串apple )'a' in 'apple' 返回 True
not in不存在于(字符串b不存在于字符串apple)'b' not in 'apple' 返回 True

示例:


fruit = 'apple'
print('a' in fruit)      # 输出 True
print('b' not in fruit)  # 输出 True

7. 身份运算符

身份运算符用于比较两个对象是否是同一对象(即,是否指向同一内存位置)。

常见身份运算符:

运算符描述示例
is是同一对象(x和y是是同一个对象 这句话对 故而结果显示True)x is y 返回 True
is not不是同一对象(x和y不是引用一个对象 这句话错 故而结果显示False)x is not y 返回 False

如何知道是否是同一个对象?

  • id(需要查看的变量名) 返回的是对象 x 的内存地址(在CPython中是对象的唯一标识符)
  • 你使用 id() 函数查看 xy 的内存地址时,发现它们是一样的,这也表明 xy 引用了同一个对象。
  • PS:内存地址每次输出都不一样
    在这里插入图片描述

代码示例:


x = [1, 2, 3]
y = x
z = [1, 2, 3]
print(x is y)   # 输出 True
print(x is not y)   # 输出 False
print(x is z)   # 输出 False
print(x == z)   # 输出 True
print(id(x)) #输出 2482380401856  
print(id(y)) #输出 2482380401856
print(id(z)) #输出 2482380355968

8. 运算符优先级

Python 运算符有不同的优先级,优先级决定了运算符的执行顺序。例如,乘法和除法的优先级高于加法和减法。

运算符优先级(从高到低):

  1. ()
  2. **(幂运算)
  3. 一元运算符:+x, -x, ~x
  4. *, /, //, %
  5. +, -
  6. 比较运算符:==, !=, >, <, >=, <=
  7. not
  8. and
  9. or

可以通过使用括号 () 来改变运算顺序。


总结

掌握 Python 中的运算符对于编写高效、清晰的代码非常重要。通过合理使用各种运算符,可以进行各种数学运算、逻辑判断和数据处理。希望本文能帮助你更好地理解 Python 的运算符。


http://www.xdnf.cn/news/12137.html

相关文章:

  • 【Markdown 中定义函数和变量】
  • 创新驱动产业升级,国际数字影像产业园绘就文创发展新蓝图
  • Python多线程编程:从GIL锁到实战优化
  • 【openssl】升级为3.3.1,避免安全漏洞
  • 大模型高效提示词Prompt编写指南
  • Fullstack 面试复习笔记:项目梳理总结
  • 施耐德特价型号伺服电机VIA0703D31A1022、常见故障
  • 硬件学习笔记--66 MCU的DMA简介
  • unix/linux,sudo,一个强大且灵活的工具,允许一个被授权的用户以另一个用户(通常是root,即超级用户)的身份来执行命令
  • VSCode 工作区配置文件通用模板创建脚本
  • 循序渐进kubernetes之Lens
  • 华为云服务器 Java 项目部署 “版本穿越” 危机破解指南
  • STM32实战:智能环境监测站设计方案
  • spel 多层list嵌套表达式踩坑记
  • 数据结构与算法学习笔记(Acwing 提高课)----动态规划·树形DP
  • 互联网大厂Java求职面试:云原生架构下的微服务网关与可观测性设计
  • SQL进阶之旅 Day 15:动态SQL与条件查询构建
  • 使用nginx代理mqtt服务
  • 算法分析与设计-动态规划、贪心算法
  • 对抗性提示:大型语言模型的安全性测试
  • 多模态大语言模型arxiv论文略读(107)
  • HTTP(超文本传输协议)详解
  • HarmonyOS Next 弹窗系列教程(4)
  • 【OpenGL学习】(四)统一着色和插值着色
  • 完成一个可交互的k8s管理平台的页面开发
  • [蓝桥杯]碱基
  • 2025年智能物联网与电子信息国际会议 (IITEI 2025)
  • QT开发技术【ffmpeg + QAudioOutput】音乐播放器
  • 【Docker 从入门到实战全攻略(二):核心概念 + 命令详解 + 部署案例】
  • [Java 基础]面向对象-多态