Python 运算符是用于执行变量和值之间运算的特殊符号,根据功能可分为算术运算符、比较运算符、逻辑运算符、赋值运算符、位运算符、成员运算符和身份运算符等。下面逐一介绍:
一、算术运算符
用于数值计算,返回一个新的数值结果。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
+ |
加法 | 3 + 5 |
8 |
- |
减法 | 10 - 4 |
6 |
* |
乘法 | 2 * 6 |
12 |
/ |
除法(结果为浮点数) | 7 / 2 |
3.5 |
// |
整除(向下取整) | 7 // 2 |
3 |
% |
取余(模运算) | 7 % 2 |
1 |
** |
幂运算(a的b次方) | 2 ** 3 |
8 |
注意:
- 除法
/始终返回浮点数(即使能整除,如4 / 2 = 2.0); - 整除
//向下取整(如负数(-7) // 2 = -4,而非-3); - 取余
%结果的符号与除数一致(如7 % (-2) = -1,-7 % 2 = 1)。
二、比较运算符
用于比较两个值的关系,返回布尔值(True 或 False)。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
== |
等于(值是否相等) | 5 == 5 |
True |
!= |
不等于 | 5 != 3 |
True |
> |
大于 | 10 > 20 |
False |
< |
小于 | 10 < 20 |
True |
>= |
大于等于 | 5 >= 5 |
True |
<= |
小于等于 | 3 <= 2 |
False |
注意:
-
比较运算符可连续使用(类似数学表达),如
1 < 3 < 5等价于1 < 3 and 3 < 5,结果为True; -
==比较的是“值是否相等”,而后面的“身份运算符is”比较的是“是否为同一个对象”(不要混淆)。
三、逻辑运算符
用于连接多个条件,返回布尔值,遵循“短路求值”规则(提前判断结果,减少计算)。
| 运算符 | 描述 | 逻辑规则 | 示例 | 结果 |
|---|---|---|---|---|
and |
逻辑与 | 两边都为 True 才返回 True |
3 > 2 and 5 < 10 |
True |
or |
逻辑或 | 至少一边为 True 就返回 True |
3 > 5 or 5 < 10 |
True |
not |
逻辑非 | 取反(True 变 False,反之亦然) |
not (3 > 5) |
True |
短路求值示例:
-
and中若左侧为False,则直接返回False,不计算右侧:False and (1/0)不会报错(因右侧不执行),结果为False。 -
or中若左侧为True,则直接返回True,不计算右侧:True or (1/0)不会报错,结果为True。
四、赋值运算符
用于给变量赋值,基本形式为 变量 = 值,还支持“复合赋值”(简化运算+赋值)。
| 基础赋值 | 复合赋值 | 等价于 | 示例(a=5 时) |
结果(a的值) |
|---|---|---|---|---|
= |
+= |
a = a + b |
a += 3(即 a=5+3) |
8 |
-= |
a = a - b |
a -= 2 |
3 |
|
*= |
a = a * b |
a *= 4 |
20 |
|
/= |
a = a / b |
a /= 2 |
2.5 |
|
//= |
a = a // b |
a //= 2 |
2 |
|
%= |
a = a % b |
a %= 3 |
2 |
|
**= |
a = a ** b |
a **= 2 |
25 |
五、位运算符
直接对整数的二进制位进行操作(较少用于日常开发,多用于底层或性能优化)。
| 运算符 | 描述 | 二进制示例(a=6即110,b=3即011) | 结果(十进制) |
|---|---|---|---|
& |
按位与(同1则1) | a & b → 010 |
2 |
| |
按位或(有1则1) | a | b → 111 |
7 |
^ |
按位异或(不同则1) | a ^ b → 101 |
5 |
~ |
按位取反(0变1,1变0) | ~a → ...11111001(补码) |
-7 |
<< |
左移(高位丢弃,低位补0) | a << 1 → 1100 |
12 |
>> |
右移(低位丢弃,高位补符号位) | a >> 1 → 011 |
3 |
六、成员运算符
用于判断“元素是否在序列中”(序列包括列表、字符串、元组等),返回布尔值。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
in |
元素在序列中返回 True |
"a" in ["a", "b"] |
True |
not in |
元素不在序列中返回 True |
3 not in [1, 2, 4] |
True |
七、身份运算符
用于判断“两个变量是否指向同一个对象”(即内存地址是否相同),返回布尔值。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
is |
是同一个对象返回 True |
a = [1,2]; b = a; a is b |
True |
is not |
不是同一个对象返回 True |
a = [1,2]; b = [1,2]; a is not b |
True |
注意:
- == 比较“值是否相等”,is 比较“是否为同一个对象”。例如:
a = [1, 2]
b = [1, 2]
print(a == b) # True(值相等)
print(a is b) # False(不是同一个对象,内存地址不同)
八、运算符优先级(简化版)
当多个运算符同时出现时,遵循以下优先级(从高到低,可通过括号 () 强制改变顺序):
1.幂运算 **
2.正负号 +x、-x
3.算术运算符(*、/、//、% 高于 +、-)
4.位运算符(~ 高于 <<、>>,再高于 &,最后 |、^)
5.比较运算符(==、!=、>、< 等)
6.逻辑运算符(not 高于 and,and 高于 or)
示例:
3 + 4 * 2 先算 4*2=8,再算 3+8=11(算术运算符优先级);
(3 + 4) * 2 用括号强制先算加法,结果为 14。
掌握运算符是编写Python代码的基础,尤其要注意容易混淆的点(如 == 与 is、/ 与 //),多通过实例练习即可熟练运用。
算术运算符

比较运算

逻辑运算

位运算

赋值运算

成员运算符
in
not in
利用in和not in操作符,可以确定一个值是否在列表中。像其他操作符一样,in和 not in用在表达式中,连接两个值:一个要在列表中查找的值,以及待查找的列表。这些表达式将求值为布尔值。
身份运算符
is
is not
Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。
is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。
==比较操作符和is同一性运算符区别
==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,例如下面两个字符串间的比较:
例1.
>>> a = 'cheesezh'
>>> b = 'cheesezh'
>>> a == b
True
is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。通过对下面几个list间的比较,你就会明白is同一性运算符的工作原理:
例2.
>>> x = y = [4,5,6]
>>> z = [4,5,6]
>>> x == y
True
>>> x == z
True
>>> x is y
True
>>> x is z
False
>>>
>>> print id(x)
3075326572
>>> print id(y)
3075326572
>>> print id(z)
3075328140