Python:运算符

B站影视 港台电影 2025-10-08 00:05 1

摘要: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) # 5

Python 的赋值本质上是名称绑定。变量名仅是对象的引用标签,而非内存中的容器。

复合赋值会优先尝试原地修改(可变对象常见),若对象不可变则会新建并重新绑定。部分类型(如 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 代码。

“点赞有美意,赞赏是鼓励”

来源:苑杰教育

相关推荐