在 Python 中,运算符(Operators)用于对变量或值执行各种操作(如算术、比较、逻辑等)。以下是 Python 运算符的详细分类和示例:
一、算术运算符
用于数学计算:
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
+ | 加法 | 5 + 3 | 8 |
- | 减法 | 10 - 2 | 8 |
* | 乘法 | 4 * 3 | 12 |
/ | 除法(浮点) | 7 / 2 3.5 | |
// | 整除(向下取整) | 7 // 2 | 3 |
% | 取模(余数) | 7 % 2 | 1 |
** | 幂运算 | 2 ** 3 | 8 |
示例:
print(5 + 3) # 8
print(7 // 2) # 3(整除)
print(2 ** 4) # 16(2的4次方)
算术运算符优先级(从高到低)
| 优先级 | 运算符 | 说明 | 示例 | 结果 |
|---|---|---|---|---|
| 1 | ** | 幂运算(指数) | 2 ** 3 | 8 |
| 2 | *, /, //, % | 乘、除、整除、取模 | 10 * 2 / 5 | 4.0 |
| 3 | +, - | 加、减 | 5 + 3 - 2 | 6 |
二、比较运算符
返回布尔值(True 或 False):
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
== | 等于 | 5 == 3 | False |
!= | 不等于 | 5 != 3 | True |
> | 大于 | 7 > 2 | True |
< | 小于 | 7 < 2 | False |
>= | 大于等于 | 5 >= 5 | True |
<= | 小于等于 | 3 <= 2 | False |
示例:
print(10 == 10) # True
print(3 != "3") # True(类型不同)
三、逻辑运算符
用于布尔逻辑运算:
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
and | 逻辑与 | True and False | False |
or | 逻辑或 | True or False | True |
not | 逻辑非 | not True | False |
示例:
age = 20
is_adult = age >= 18
print(is_adult and age < 30) # True(20 >= 18 且 20 < 30)
print(not is_adult) # False
四、赋值运算符
简化变量赋值操作:
| 运算符 | 等价形式 | 示例 |
|---|---|---|
= | a = 5 | x = 5 |
+= | a = a + b | x += 3 → x = x + 3 |
-= | a = a - b | x -= 2 → x = x - 2 |
*= | a = a * b | x *= 4 → x = x * 4 |
/= | a = a / b | x /= 2 → x = x / 2 |
//= | a = a // b | x //= 3 → x = x // 3 |
%= | a = a % b | x %= 2 → x = x % 2 |
**= | a = a ** b | x **= 2 → x = x ** 2 |
示例:
count = 10
count += 5 # 等价于 count = count + 5
print(count) # 15
五、位运算符(了解)
直接操作二进制位:
| 运算符 | 名称 | 示例(a=60, b=13) | 二进制结果 |
|---|---|---|---|
& | 按位与 | a & b | 0b00001100 (12) |
| ` | ` | 按位或 | `a |
^ | 按位异或 | a ^ b | 0b00110001 (49) |
~ | 按位取反 | ~a | -61(补码表示) |
<< | 左移 | a << 2 | 240(60<<2) |
>> | 右移 | a >> 2 | 15(60>>2) |
示例:
a = 60 # 二进制 00111100
b = 13 # 二进制 00001101
print(a & b) # 12(二进制 00001100)
六、成员运算符
检查元素是否在序列中:
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
in | 存在 | "a" in "apple" | True |
not in | 不存在 | "x" not in "apple" | True |
示例:
fruits = ["apple", "banana"]
print("apple" in fruits) # True
print("orange" not in fruits) # True
七、身份运算符
比较对象的内存地址(是否为同一对象):
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
is | 是同一对象 | x is y | True/False |
is not | 不是同一对象 | x is not y | True/False |
示例:
a = [1, 2]
b = a
c = [1, 2]
print(a is b) # True(指向同一对象)
print(a is c) # False(内容相同但对象不同)
print(a == c) # True(值相等)
八、运算符优先级
从高到低:
**(幂运算)*,/,//,%(乘除、整除、取模)+,-(加减)>,<,>=,<=(比较)==,!=(相等性)=,+=,-=(赋值)and,or,not(逻辑)
示例:
result = 10 + 5 * 2 # 先乘后加 → 20
print(result)
九、特殊运算符
1. 三元运算符
python
x = 10
y = 20
max_val = x if x > y else y # 如果 x > y 返回 x,否则返回 y
print(max_val) # 20
2. 链式比较
age = 25
print(18 <= age < 30) # True(等价于 age >= 18 and age < 30)
总结
| 类型 | 常见运算符 |
|---|---|
| 算术 | +, -, *, /, //, %, ** |
| 比较 | ==, !=, >, <, >=, <= |
| 逻辑 | and, or, not |
| 赋值 | =, +=, -=, *=, /= |
| 位运算 | &, ` |
| 成员 | in, not in |
| 身份 | is, is not |
关键点:
- 运算符有优先级,不确定时用括号
()明确顺序。 - 逻辑运算符支持短路计算(如
and遇到False直接返回)。 - 身份运算符
is比较内存地址,==比较值。