Python 中运算符详解:从基础到高级应用
·
1. 引言
运算符是编程语言中用于执行各种运算的符号或关键字。Python 提供了丰富的运算符,涵盖了算术、比较、赋值、逻辑、位运算、成员关系、身份判断等多个方面。掌握这些运算符是编写高效、简洁 Python 代码的基础。本文将系统性地介绍 Python 中的各类运算符,并通过示例代码帮助读者深入理解其用法和特性。
2. 算术运算符
算术运算符用于执行基本的数学运算。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
+ | 加法 | 5 + 3 | 8 |
- | 减法 | 10 - 4 | 6 |
* | 乘法 | 7 * 2 | 14 |
/ | 除法(浮点数) | 10 / 3 | 3.333... |
// | 整除(向下取整) | 10 // 3 | 3 |
% | 取模(求余) | 10 % 3 | 1 |
** | 幂运算 | 2 ** 3 | 8 |
# 算术运算符示例
a = 6
b = 2
print(a + b) #8
print(a - b) #4
print(a * b) #12
print(b ** a) #64
print(a / b) #3.0
print(a // b) #3
print(a % b) #0
3. 比较运算符
比较运算符用于比较两个值,返回布尔值 True 或 False。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
== | 等于 | 5 == 5 | True |
!= | 不等于 | 5 != 3 | True |
> | 大于 | 10 > 5 | True |
< | 小于 | 3 < 7 | True |
>= | 大于等于 | 5 >= 5 | True |
<= | 小于等于 | 4 <= 6 | True |
# 比较运算符示例
x = 10
y = 20
print(x == y) # False
print(x != y) # True
print(x > y) # False
print(x < y) # True
print(x >= 10) # True
print(y <= 20) # True
4. 赋值运算符
赋值运算符用于给变量赋值,并支持复合赋值运算。
| 运算符 | 描述 | 等价于 | 示例 |
|---|---|---|---|
= | 基本赋值 | - | x = 5 |
+= | 加后赋值 | x = x + y | x += y |
-= | 减后赋值 | x = x - y | x -= y |
*= | 乘后赋值 | x = x * y | x *= y |
/= | 除后赋值 | x = x / y | x /= y |
//= | 整除后赋值 | x = x // y | x //= y |
%= | 取模后赋值 | x = x % y | x %= y |
**= | 幂运算后赋值 | x = x ** y | x **= y |
# 赋值运算符示例
a = 10
a += 5 # a = a + 5 → 15
print(a)
b = 20
b -= 3 # b = b - 3 → 17
print(b)
c = 5
c *= 2 # c = c * 2 → 10
print(c)
d = 100
d /= 4 # d = d / 4 → 25.0
print(d)
5. 逻辑运算符
逻辑运算符用于组合多个条件,常用于流程控制。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
and | 逻辑与(两者都为真) | True and False | False |
or | 逻辑或(至少一个为真) | True or False | True |
not | 逻辑非(取反) | not True | False |
# 逻辑运算符示例
age = 25
has_license = True
# 使用 and
if age >= 18 and has_license:
print("可以驾驶") # 输出
# 使用 or
if age < 12 or age >= 65:
print("享受优惠票价")
# 使用 not
is_weekend = False
if not is_weekend:
print("今天是工作日") # 输出
6. 位运算符
位运算符直接对整数的二进制位进行操作。
| 运算符 | 描述 | 示例 | 结果(二进制) |
|---|---|---|---|
& | 按位与 | 5 & 3 | 1 (0101 & 0011 = 0001) |
| | 按位或 | 5 | 3 | 7 (0101 | 0011 = 0111) |
^ | 按位异或 | 5 ^ 3 | 6 (0101 ^ 0011 = 0110) |
<< | 左移 | 5 << 1 | 10 (0101 << 1 = 1010) |
>> | 右移 | 5 >> 1 | 2 (0101 >> 1 = 0010) |
# 位运算符示例
a = 5 # 二进制 0101
b = 3 # 二进制 0011
print(a & b) # 1 (0001)
print(a | b) # 7 (0111)
print(a ^ b) # 6 (0110)
print(a << 1) # 10 (1010)
print(a >> 1) # 2 (0010)
7. 成员运算符
成员运算符用于测试序列(如字符串、列表、元组、字典、集合)中是否包含某个成员。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
in | 如果在序列中找到值则返回 True | 'a' in 'apple' | True |
not in | 如果在序列中没有找到值则返回 True | 5 not in [1,2,3] | True |
# 成员运算符示例
fruits = ['apple', 'banana', 'cherry']
print('banana' in fruits) # True
print('orange' in fruits) # False
print('grape' not in fruits) # True
text = "Hello, World!"
print('World' in text) # True
print('Python' in text) # False
8. 身份运算符
身份运算符用于比较两个对象的内存地址(是否为同一个对象)。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
is | 如果两个变量引用同一个对象则返回 True | x is y | 取决于对象标识 |
is not | 如果两个变量引用不同对象则返回 True | x is not y | 取决于对象标识 |
# 身份运算符示例
a = [1, 2, 3]
b = a # b 引用同一个列表对象
c = [1, 2, 3] # c 引用一个新列表对象,内容相同
print(a is b) # True
print(a is c) # False
print(a == c) # True (值相等)
print(a is not c) # True
# 小整数缓存(-5 到 256)
x = 100
y = 100
print(x is y) # True (Python 会缓存小整数)
m = 1000
n = 1000
print(m is n) # False (大整数不缓存)
9. 运算符优先级
当表达式中包含多个运算符时,Python 会按照优先级顺序进行计算。下表从高到低列出了常见运算符的优先级:
()—— 括号(最高优先级)**—— 幂运算*、/、//、%—— 乘、除、整除、取模+、-—— 加、减(二元运算符)<<、>>—— 左移、右移&—— 按位与^—— 按位异或|—— 按位或<、<=、>、>=、!=、==—— 比较运算符is、is not、in、not in—— 身份和成员运算符not—— 逻辑非and—— 逻辑与or—— 逻辑或(最低优先级)
更多推荐


所有评论(0)