# 一. 运算符的分类
Python 中的运算符可以分为以下几种类型:
- 算术运算符:用于执行数学运算,如加(
+
)、减(-
)、乘(*
)、除(/
)、模(%
)、幂(**
)等。 - 比较运算符:用于比较两个值,如等于(
==
)、不等于(!=
)、大于(>
)、小于(<
)、大于等于(>=
)、小于等于(<=
)。 - 逻辑运算符:用于执行逻辑运算,如与(
and
)、或(or
)、非(not
)。 - 赋值运算符:用于赋值操作,如简单赋值(
=
)、加等于(+=
)、减等于(-=
)等。 - 位运算符:用于位级操作,如按位与(
&
)、按位或(|
)、按位异或(^
)、按位取反(~
)、左移(<<
)、右移(>>
)。 - 成员运算符:用于测试成员资格,如属于(
in
)、不属于(not in
)。 - 身份运算符:用于比较两个对象的身份,如恒等(
is
)、非恒等(is not
)。
# 二. 算术运算符
算术运算符是最基本的运算符,用于执行数学运算。以下是一些常用的算术运算符及其用法:
+
:加法运算符,用于计算两个数的和。a = 5 b = 3 result = a + b # 结果为 8
1
2
3-
:减法运算符,用于计算两个数的差。a = 5 b = 3 result = a - b # 结果为 2
1
2
3*
:乘法运算符,用于计算两个数的乘积。a = 5 b = 3 result = a * b # 结果为 15
1
2
3/
:除法运算符,用于计算两个数的商。a = 10 b = 2 result = a / b # 结果为 5.0
1
2
3%
:模运算符,用于计算除法的余数。a = 10 b = 3 result = a % b # 结果为 1
1
2
3**
:幂运算符,用于计算一个数的幂。a = 2 b = 3 result = a ** b # 结果为 8
1
2
3
# 三. 比较运算符
比较运算符用于比较两个值,并根据比较结果返回布尔值(True
或 False
)。
==
:等于运算符,检查两个值是否相等。a = 5 b = 5 result = a == b # 结果为 True
1
2
3!=
:不等于运算符,检查两个值是否不相等。a = 5 b = 3 result = a != b # 结果为 True
1
2
3>
、<
、>=
、<=
:分别用于比较值的大小。a = 5 b = 3 result = a > b # 结果为 True result = a < b # 结果为 False result = a >= b # 结果为 True result = a <= b # 结果为 False
1
2
3
4
5
6
# 四. 逻辑运算符
逻辑运算符用于执行布尔逻辑运算。
and
:逻辑与运算符,只有当两个操作数都为真时,结果才为真。a = True b = True result = a and b # 结果为 True
1
2
3or
:逻辑或运算符,只要有一个操作数为真,结果就为真。a = False b = True result = a or b # 结果为 True
1
2
3not
:逻辑非运算符,反转操作数的布尔值。a = True result = not a # 结果为 False
1
2
# 五. 赋值运算符
赋值运算符用于给变量赋值或修改变量的值。
=
:简单赋值运算符,将右侧的值赋给左侧的变量。a = 5 # a 的值为 5
1+=
、-=
、*=
、/=
、%=
、**=
:复合赋值运算符,结合了运算和赋值。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
1
2
3
4
5
6
7
# 六. 位运算符
位运算符用于对整数的二进制位进行操作。
&
:按位与运算符,对应位都为 1 时,结果位才为 1。a = 0b1010 # 二进制表示 b = 0b1100 result = a & b # 结果为 0b1000
1
2
3|
:按位或运算符,至少有一个位为 1 时,结果位就为 1。a = 0b1010 b = 0b1100 result = a | b # 结果为 0b1110
1
2
3^
:按位异或运算符,对应位不同则结果位为 1。a = 0b1010 b = 0b1100 result = a ^ b # 结果为 0b0110
1
2
3~
:按位取反运算符,反转操作数的每一位。a = 0b1010 result = ~a # 结果为 -0b1011(Python中负数使用补码表示)
1
2<<
、>>
:左移和右移运算符,分别将位向左或向右移动指定的位数。a = 0b1010 result = a << 2 # 结果为 0b101000 result = a >> 1 # 结果为 0b101
1
2
3
# 七. 成员运算符和身份运算符
in
:检查一个值是否存在于序列中。a = [1, 2, 3] result = 2 in a # 结果为 True
1
2not in
:检查一个值是否不存在于序列中。a = [1, 2, 3] result = 4 not in a # 结果为 True
1
2is
:检查两个引用是否指向同一个对象。a = [1, 2, 3] b = a result = a is b # 结果为 True
1
2
3is not
:检查两个引用是否指向不同对象。a = [1, 2, 3] b = [1, 2, 3] result = a is not b # 结果为 True(即使内容相同,也是不同的对象)
1
2
3
# 八. 高级用法
除了基本用法,Python 的运算符还可以用于更高级的操作,例如:
链式比较:可以连续使用比较运算符,进行多个比较。
a = 10
1result = 5 < a < 15 # 结果为 True
1运算符重载:Python 允许开发者定义或修改特殊方法,从而改变某些运算符的行为。
class Vector: def __init__(self, x, y): self.x = x self.y = y def __add__(self, other): return Vector(self.x + other.x, self.y + other.y) v1 = Vector(1, 2) v2 = Vector(3, 4) v3 = v1 + v2 # 使用了重载的 + 运算符
1
2
3
4
5
6
7
8
9
10
11生成器表达式:使用圆括号
()
代替花括号{}
,可以创建一个生成器表达式,用于懒惰迭代。squares = (x**2 for x in range(10)) for square in squares: print(square)
1
2
3