摘要:Python 提供了丰富的运算符,覆盖数值计算、逻辑判断、位运算、对象比较、容器操作等多个方面。
Python 提供了丰富的运算符,覆盖数值计算、逻辑判断、位运算、对象比较、容器操作等多个方面。
算术运算符
用于数值计算,部分运算符可扩展到序列或矩阵。
包括:+(加法)、-(减法 / 取负)、*(乘法)、/(浮点除法)、//(整除)、%(取余)、**(幂运算)、@(矩阵乘法)。
print(1 + 2) # 3print(5 - 2) # 3print(3 * 4) # 12print(7 / 2) # 3.5print(7 // 2) # 3print(7 % 2) # 1print(2 ** 3) # 8print(-2 ** 2) # 等价于 -(2 ** 2),结果为 -4(右结合特性)# 矩阵乘法(需 NumPy)import numpy as npA = np.array([[1, 2],[3, 4]])B = np.array([[5, 6],[7, 8]])print(A @ B)/ 总是返回浮点数。
// 执行向下取整(floor division),结果为不大于真除法结果的最大整数。
% 的余数符号与除数一致。
** 是右结合,优先级高于一元负号。
对矩阵乘法使用 @,需依赖如 等库。
对序列(如字符串、列表)而言,仅支持 +(拼接)与 *(重复)。
Python 中运算符本质上是调用(如 a + b 调用 a.__add__(b))。
请参阅:
比较运算符
用于数值、对象或容器间的值比较、成员测试与身份判断。
包括:
值比较运算符:==(相等)、!=(不等)、>(大于)、=(大于等于)、
成员运算符:in(是成员)、not in(不是成员)。
身份运算符:is(是同一对象)、is not(不是同一对象)。
print(3 == 3) # Trueprint(3 != 4) # Trueprint(2值比较通过 __eq__ 等方法实现。
成员测试底层调用 __contains__ 方法。
身份判断通过比较对象的唯一标识(如 CPython 中的内存地址)。
请参阅:
逻辑运算符
用于布尔逻辑计算。
包括:and(与)、or(或)、not(非)。
print(True and False) # Falseprint(True or False) # Trueprint(not 0) # True逻辑判断依赖 Python 的。
and、or 具有短路求值特性。
not 始终返回布尔值。
and、or 可能返回某个操作数本身,而非布尔值。在 Python 中,逻辑表达式返回最后被求值的操作数,而非强制转换为 True / False。
请参阅:
位运算符
对整数按二进制位进行操作。
包括:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>(右移)。
print(5 & 3) # 1 -> 0101 & 0011 = 0001print(5 | 3) # 7 -> 0101 | 0011 = 0111print(5 ^ 3) # 6 -> 0101 ^ 0011 = 0110print(~5) # -6 -> 按位取反print(5 左移一位print(5 >> 1) # 2 -> 右移一位位运算仅定义于整数类型,对浮点数和复数无效。
Python 中的整数支持无限精度,因此左移不会溢出。
~x 等价于 -(x+1)。
右移负数时采用算术移位。算术右移会保留符号位,以保证负数右移后仍为负。
请参阅:
赋值运算符
用于将值绑定到变量,并支持复合形式。
包括:基本赋值(=)、算术复合赋值(+=、-=、*=、/=、//=、%=、**=)、位运算复合赋值(&=、|=、^=、>=)以及海象运算符(:=)。
x = 5x += 2 # 7x *= 3 # 21# 海象运算符 :=if (n := len("hello")) > 3:print(n) # 5Python 的赋值本质上是名称绑定。变量名仅是对象的引用标签,而非内存中的容器。
复合赋值会优先尝试原地修改(可变对象常见),若对象不可变则会新建并重新绑定。部分类型(如 list、set)在复合赋值时会原地修改对象,而不会生成新对象。
链式赋值可能带来别名效应,需谨慎使用。
海象运算符 := 让赋值可出现在表达式中,但优先级较低。常用于 while 或 if 条件中同时赋值与判断。
请参阅:
访问与调用运算符
用于访问对象元素、属性和调用。
包括:(下标/切片运算符)、.(属性访问运算符)、(调用运算符)。
# 下标lst = [1, 2, 3]print(lst[0]) # 1# 属性s = "abc"print(s.upper) # "ABC"# 调用def f(x): return x+1print(f(3)) # 4访问或修改容器元素。
. 访问对象属性或方法。
调用函数、类或可调用对象。
这类运算符的优先级最高,常出现在表达式最右侧。
请参阅:
优先级与结合性
优先级(从高到低):
1、函数调用 、索引 、属性访问 .
2、幂运算 **
3、一元运算符 +x、-x、~x
4、乘除取余 *、/、//、%、@(矩阵乘法)
5、加减 +、-
6、位移 >
7、按位与 &
8、按位异或 ^
9、按位或 |
10、逻辑 not
11、比较 ==、!=、、>=、成员 in / not in、身份 is / is not
12、逻辑 and
13、逻辑 or
14、海象 :=
15、赋值 = 及复合赋值
结合性:
除了幂运算 ** 是右结合外,其他运算符都是左结合。
小结
Python 的运算符可分为:算术、比较(含值比较、成员、身份)、逻辑、位运算、赋值及访问类六类。
它们共同构成表达式的核心语法结构,既能执行数值计算,也能灵活操作对象与容器。
熟悉每种运算符的语义、优先级与结合性,有助于编写更清晰、精确且高效的 Python 代码。
“点赞有美意,赞赏是鼓励”
来源:苑杰教育