Python运算符


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)。

二、比较运算符

用于比较两个值的关系,返回布尔值(TrueFalse)。

运算符 描述 示例 结果
== 等于(值是否相等) 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 逻辑非 取反(TrueFalse,反之亦然) 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 & b010 2
| 按位或(有1则1) a | b111 7
^ 按位异或(不同则1) a ^ b101 5
~ 按位取反(0变1,1变0) ~a...11111001(补码) -7
<< 左移(高位丢弃,低位补0) a << 11100 12
>> 右移(低位丢弃,高位补符号位) a >> 1011 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 高于 andand 高于 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