掌握Python中各类运算符的用法和优先级
运算符是编程语言中用于执行各种操作的符号。Python提供了多种类型的运算符,包括算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符等。掌握这些运算符对于编写Python程序至关重要。
Python中的运算符可以分为以下几类:
算术运算符用于执行基本的数学运算,如加、减、乘、除等。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| + | 加法 | 10 + 5 | 15 |
| - | 减法 | 10 - 5 | 5 |
| * | 乘法 | 10 * 5 | 50 |
| / | 除法 | 10 / 5 | 2.0 |
| % | 取模(余数) | 10 % 3 | 1 |
| ** | 幂运算 | 2 ** 3 | 8 |
| // | 整除(向下取整) | 10 // 3 | 3 |
比较运算符用于比较两个值,返回布尔值(True或False)。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| == | 等于 | 10 == 5 | False |
| != | 不等于 | 10 != 5 | True |
| > | 大于 | 10 > 5 | True |
| < | 小于 | 10 < 5 | False |
| >= | 大于等于 | 10 >= 5 | True |
| <= | 小于等于 | 10 <= 5 | False |
赋值运算符用于给变量赋值,也可以与其他运算符结合使用。
| 运算符 | 描述 | 示例 | 等价于 |
|---|---|---|---|
| = | 简单赋值 | x = 5 | x = 5 |
| += | 加法赋值 | x += 3 | x = x + 3 |
| -= | 减法赋值 | x -= 3 | x = x - 3 |
| *= | 乘法赋值 | x *= 3 | x = x * 3 |
| /= | 除法赋值 | x /= 3 | x = x / 3 |
| %= | 取模赋值 | x %= 3 | x = x % 3 |
| **= | 幂赋值 | x **= 3 | x = x ** 3 |
| //= | 整除赋值 | x //= 3 | x = x // 3 |
逻辑运算符用于组合条件语句,返回布尔值。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| and | 逻辑与 - 如果两个操作数都为真,则条件为真 | x > 5 and x < 10 | True/False |
| or | 逻辑或 - 如果任一操作数为真,则条件为真 | x > 5 or x < 4 | True/False |
| not | 逻辑非 - 反转操作数的逻辑状态 | not(x > 5) | True/False |
位运算符用于对二进制数进行操作。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| & | 按位与 | 5 & 3 | 1 |
| | | 按位或 | 5 | 3 | 7 |
| ^ | 按位异或 | 5 ^ 3 | 6 |
| ~ | 按位取反 | ~5 | -6 |
| << | 左移 | 5 << 1 | 10 |
| >> | 右移 | 5 >> 1 | 2 |
成员运算符用于测试序列中是否包含某个成员,身份运算符用于比较两个对象的内存地址。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
| in | 如果在序列中找到值返回True,否则返回False | 5 in [1,2,3,4,5] | True |
| not in | 如果在序列中没有找到值返回True,否则返回False | 6 not in [1,2,3,4,5] | True |
| is | 如果两个变量引用同一个对象返回True | x is y | True/False |
| is not | 如果两个变量引用不同的对象返回True | x is not y | True/False |
当表达式中有多个运算符时,Python会按照运算符的优先级进行计算。优先级高的运算符先于优先级低的运算符进行计算。
| 优先级 | 运算符 | 描述 |
|---|---|---|
| 1 | () | 括号 |
| 2 | ** | 幂运算 |
| 3 | ~ + - | 按位取反、正号、负号 |
| 4 | * / % // | 乘、除、取模、整除 |
| 5 | + - | 加、减 |
| 6 | >> << | 右移、左移 |
| 7 | & | 按位与 |
| 8 | ^ | | 按位异或、按位或 |
| 9 | <= < > >= | 比较运算符 |
| 10 | == != | 等于、不等于 |
| 11 | = %= /= //= -= += *= **= | 赋值运算符 |
| 12 | is is not | 身份运算符 |
| 13 | in not in | 成员运算符 |
| 14 | not or and | 逻辑运算符 |