运算符
- 举个简单的例子 4 + 5 = 9。 例子中,4和5被称为操作数,+称为运算符。
- Python 中的运算符用于执行各种操作,例如:执行算术运算、比较值、逻辑操作等。
算术运算符
以下假设变量: a, b = 10, 3
| 运算符 | 描述 | 实例 | 
|---|---|---|
| + | 加法:用于将两个值相加。 | a + b = 13 | 
| - | 减法:用于从一个值中减去另一个值。 | a - b = 7 | 
| * | 乘法:用于将两个值相乘。 | a * b = 30 | 
| / | 除法:用于将一个值除以另一个值。 | a / b = 3.3333333333333335  | 
| // | 地板除:用于执行整数除法,返回不大于结果的最大整数(向下取整)。 | a // b = 3 | 
| % | 取模:返回除法的余数。 | a % b = 1 | 
| ** | 幂运算:用于计算一个值的幂次方。 | a ** b = 1000 | 
比较运算符
以下假设变量: a, b = 10, 3
| 运算符 | 描述 | 实例 | 
|---|---|---|
| == | 等于:用于检查两个值是否相等。 | a == b返回False | 
| != | 不等于:用于检查两个值是否不相等。 | a != b返回True。 | 
| > | 大于:用于检查一个值是否大于另一个值。 | a > b返回True。 | 
| < | 小于:用于检查一个值是否小于另一个值。 | a < b返回False。 | 
| >= | 大于等于:用于检查一个值是否大于或等于另一个值。 | a >= b返回True。 | 
| <= | 小于等于:用于检查一个值是否小于或等于另一个值。 | a <= b返回False。 | 
逻辑运算符
以下假设变量: a, b = 10, 3
| 运算符 | 逻辑表达式 | 描述 | 实例 | 
|---|---|---|---|
| and | x and y | 与:用于检查多个条件是否同时为真。 | a and b返回3。 | 
| or | x or y | 或:用于检查多个条件是否至少有一个为真。 | a or b返回10。 | 
| not | not x | 非:用于对条件取反。 | not a返回False | 
示例:
| 1 | # 判断是否是闰年 | 
赋值运算符
| 运算符 | 描述 | 实例 | 
|---|---|---|
| = | 简单赋值:用于将一个值赋给一个变量。 | x = 5赋值 | 
| += | 加法赋值:用于将一个值与一个变量相加,并将结果赋给该变量。 | x += 3相当于x = x + 3 | 
| -= | 减法赋值:用于将一个值从一个变量中减去,并将结果赋给该变量。 | x -= 2相当于x = x - 2 | 
| *= | 乘法赋值:用于将一个值与一个变量相乘,并将结果赋给该变量。 | x *= 4相当于x = x * 4 | 
| /= | 除法赋值:用于将一个值除以一个变量,并将结果赋给该变量。 | x /= 2相当于x = x / 2 | 
| %= | 取模赋值:用于将左侧的变量取模右侧的值,并将结果赋给该变量。 | x %= 3相当于x = x % 3 | 
| **= | 幂赋值:用于将左侧的变量的值提升到右侧的幂,并将结果赋给该变量。 | x **= 2相当于x = x ** 2 | 
| //= | 取整除:用于将左侧的变量进行地板除右侧的值,并将结果赋给该变量。 | x //= 5相当于x = x // 5 | 
成员运算符
成员运算符用于检查一个值是否属于某个集合或序列。
| 运算符 | 描述 | 
|---|---|
| in | 如果左侧的值存在于右侧的集合或序列中,则返回 True。 | 
| not in | 如果左侧的值不存在于右侧的集合或序列中,则返回 True。 | 
示例:
| 1 | fruits = ['apple', 'banana', 'orange'] | 
身份运算符
用于检查两个对象是否引用同一个内存地址。
| 运算符 | 描述 | 
|---|---|
| is | 如果两个对象具有相同的内存地址,则返回 True。 | 
| is not | 如果两个对象具有不同的内存地址,则返回 True。 | 
示例:
| 1 | x = 5 | 
位运算符
位运算符用于对二进制数进行操作。
| 运算符 | 名称 | 描述 | 示例 | 结果(二进制解释) | 
|---|---|---|---|---|
| & | 按位与 | 两个操作数的对应位都为1时,结果的该位才为1 | 5 & 3 | 0101 & 0011 = 0001(1) | 
| | | 按位或 | 两个操作数的对应位至少有一个为1时,结果的该位为1 | 5 | 3 | 0101 | 0011 = 0111 (7) | 
| ^ | 按位异或 | 两个操作数的对应位不同时,结果的该位为1 | 5 ^ 3 | 0101 ^ 0011 = 0110(6) | 
| ~ | 按位取反 | 对操作数的每一位取反(包括符号位,结果取决于补码表示) | ~5 | ~00000101 = 11111010(-6) | 
| << | 左移 | 将操作数的二进制位向左移动指定位数,低位补0 | 5 << 1 | 0101 << 1 = 1010(10) | 
| >> | 右移 | 将操作数的二进制位向右移动指定位数,高位补符号位(正数补0,负数补1) | 5 >> 1 | 0101 >> 1 = 0010(2) | 
补充说明:
- ~(按位取反) 的计算方式:- Python 使用补码表示负数,~x = -x - 1
- 例如:~5 = -6,~-3 = 2
 
- Python 使用补码表示负数,
- 移位运算的特殊情况:
- 左移 n位相当于乘以2n(如5 << 2 = 20,即 5×4)
- 右移 n位相当于整除2n(如5 >> 1 = 2,即 5//2)
 
- 左移 
- 适用数据类型:
- 仅适用于 整数(int),浮点数会报错TypeError。
 
- 仅适用于 整数(
示例:
| 1 | x = 5 # 二进制表示为 0101 | 
| 1 | a = 0b10101 | 
运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
| 运算符 | 描述 | 
|---|---|
| ** | 指数 (最高优先级) | 
| ~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) | 
| * / % // | 乘,除,取模和取整除 | 
| + - | 加法减法 | 
| >> << | 右移,左移运算符 | 
| & | 位 ‘AND’ | 
| ^ | | 位运算符 | 
| <= < > >= | 比较运算符 | 
| <> == != | 等于运算符 | 
| = %= /= //= -= += *= **= | 赋值运算符 | 
| is is not | 身份运算符 | 
| in not in | 成员运算符 | 
| not and or | 逻辑运算符 |