网站首页 > 技术文章 正文
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. 比较运算符
比较运算符用于比较两个值的大小、等价性或关系,并返回布尔值 True 或 False。
返回的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)(将一个数的所有二进制位反转,即 1 变 0,0 变 1。对于负数,它会使用补码表示)  | ~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() 函数查看 x 和 y 的内存地址时,发现它们是一样的,这也表明 x 和 y 引用了同一个对象。
 - 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 运算符有不同的优先级,优先级决定了运算符的执行顺序。例如,乘法和除法的优先级高于加法和减法。
运算符优先级(从高到低):
- ()
 - **(幂运算)
 - 一元运算符:+x, -x, ~x
 - *, /, //, %
 - +, -
 - 比较运算符:==, !=, >, <, >=, <=
 - not
 - and
 - or
 
可以通过使用括号 () 来改变运算顺序。
总结
掌握 Python 中的运算符对于编写高效、清晰的代码非常重要。通过合理使用各种运算符,可以进行各种数学运算、逻辑判断和数据处理。希望本文能帮助你更好地理解 Python 的运算符。
猜你喜欢
- 2025-09-03 数据分析:如何用Excel进行数据处理?
 - 2025-09-03 Excel八大常见错误值全解析,从此告别乱码烦恼~
 - 2025-06-12 一文学会Python中的运算规则!(python中//运算)
 - 2025-06-12 C语言的左右移动,火箭的运行速度,快到你无法想象
 - 2025-06-12 Go 语言结构 – 基础篇(语法、数据类型、变量、常量、运算符)
 - 2025-06-12 3D旋转玫瑰花:python-matplotlib实现
 - 2025-06-12 三、Lua基础语法(lua语法大全)
 - 2025-06-12 C语言 奇技淫巧之"位运算"
 - 2025-06-12 python开三次方根函数怎么编写,两种设计方法
 - 2025-06-12 详解Python整数类型的按位运算(python整数的位数)
 
- 最近发表
 - 
- 聊一下 gRPC 的 C++ 异步编程_grpc 异步流模式
 - [原创首发]安全日志管理中心实战(3)——开源NIDS之suricata部署
 - 超详细手把手搭建在ubuntu系统的FFmpeg环境
 - Nginx运维之路(Docker多段构建新版本并增加第三方模
 - 92.1K小星星,一款开源免费的远程桌面,让你告别付费远程控制!
 - Go 人脸识别教程_piwigo人脸识别
 - 安卓手机安装Termux——搭建移动服务器
 - ubuntu 安装开发环境(c/c++ 15)_ubuntu安装c++编译器
 - Rust开发环境搭建指南:从安装到镜像配置的零坑实践
 - Windows系统安装VirtualBox构造本地Linux开发环境
 
 
- 标签列表
 - 
- cmd/c (90)
 - c++中::是什么意思 (84)
 - 标签用于 (71)
 - 主键只能有一个吗 (77)
 - c#console.writeline不显示 (95)
 - pythoncase语句 (88)
 - es6includes (74)
 - sqlset (76)
 - apt-getinstall-y (100)
 - node_modules怎么生成 (87)
 - chromepost (71)
 - flexdirection (73)
 - c++int转char (80)
 - mysqlany_value (79)
 - static函数和普通函数 (84)
 - el-date-picker开始日期早于结束日期 (76)
 - js判断是否是json字符串 (75)
 - c语言min函数头文件 (77)
 - asynccallback (87)
 - localstorage.removeitem (77)
 - vector线程安全吗 (73)
 - java (73)
 - js数组插入 (83)
 - mac安装java (72)
 - 无效的列索引 (74)
 
 
