运算符是 Python 编程的核心基础,用于实现数据计算、逻辑判断、赋值操作等核心功能。掌握不同类型运算符的用法,能让你高效处理数据逻辑、简化代码编写。本文将系统讲解 Python 中常用的运算符类型,结合实战代码示例和应用场景,帮你彻底吃透运算符的使用技巧。
一、运算符概述
运算符是对一个或多个操作数(变量 / 常量)进行运算的特殊符号。例如 2 + 3 中,+ 是运算符,2 和 3 是操作数。Python 中的运算符按功能可分为以下 7 大类:
- 算术运算符:用于数值计算(加减乘除等)
- 赋值运算符:用于变量赋值(基础赋值、复合赋值)
- 比较运算符:用于判断两个值的关系(大于、等于等)
- 逻辑运算符:用于组合逻辑判断(与、或、非)
- 成员运算符:判断元素是否在容器中(in、not in)
- 身份运算符:判断两个对象是否为同一实例(is、is not)
- 位运算符:直接操作二进制位(较少用,简要介绍)
二、算术运算符(最常用)
算术运算符用于对数值类型(int、float)进行数学运算,返回计算结果。
| 运算符 | 功能描述 | 示例代码 | 运行结果 |
|---|---|---|---|
| + | 加法运算 | 3 + 5、1.2 + 2.3 | 8、3.5 |
| - | 减法运算 | 10 - 4、5.5 - 2 | 6、3.5 |
| * | 乘法运算 | 4 * 6、2.5 * 3 | 24、7.5 |
| / | 除法运算(返回 float) | 10 / 3、8 / 2 | 3.333...、4.0 |
| // | 整除运算(向下取整) | 10 // 3、-10 // 3 | 3、-4 |
| % | 取模运算(返回余数) | 10 % 3、7 % 2 | 1、0 |
| ** | 幂运算(x 的 y 次方) | 2 ** 3、4 ** 0.5 | 8、2.0 |
实战代码示例
python
运行
# 算术运算符实战
a = 15
b = 4
# 基础运算
print("加法:", a + b) # 输出:19
print("减法:", a - b) # 输出:11
print("乘法:", a * b) # 输出:60
print("除法:", a / b) # 输出:3.75(注意返回float)
print("整除:", a // b) # 输出:3(向下取整,15/4=3.75→3)
print("取模:", a % b) # 输出:3(15 = 4*3 + 3)
print("幂运算:", a ** 2) # 输出:225(15的平方)
print("开平方:", 16 ** 0.5)# 输出:4.0(16的0.5次方即开平方)
# 特殊场景:负数整除(向下取整)
print("-15 // 4 =", -15 // 4) # 输出:-4(-15/4=-3.75,向下取整为-4)
应用场景
- 数值计算(如统计分数总和、计算平均值)
- 取模运算判断奇偶性(
num % 2 == 0为偶数) - 幂运算计算面积 / 体积(如正方形面积
side ** 2)
三、赋值运算符
赋值运算符用于将右侧的值赋给左侧的变量,核心是 =,延伸出复合赋值运算符(结合算术 / 位运算)。
| 运算符 | 功能描述 | 等价写法 | 示例代码 | 运行结果 |
|---|---|---|---|---|
| = | 基础赋值 | - | x = 5 | x=5 |
| += | 加后赋值 | x = x + y | x += 3 | x=8(x 初始为 5) |
| -= | 减后赋值 | x = x - y | x -= 2 | x=6(x 初始为 8) |
| *= | 乘后赋值 | x = x * y | x *= 4 | x=24(x 初始为 6) |
| /= | 除后赋值 | x = x / y | x /= 3 | x=8.0(x 初始为 24) |
| //= | 整除后赋值 | x = x // y | x //= 3 | x=2.0(x 初始为 8.0) |
| %= | 取模后赋值 | x = x % y | x %= 5 | x=2.0(x 初始为 2.0) |
| **= | 幂后赋值 | x = x ** y | x **= 2 | x=4.0(x 初始为 2.0) |
实战代码示例
python
运行
# 赋值运算符实战
x = 10 # 基础赋值
# 复合赋值(简化代码,效率更高)
x += 5 # 等价于 x = x + 5
print("x += 5 后:", x) # 输出:15
x *= 2 # 等价于 x = x * 2
print("x *= 2 后:", x) # 输出:30
x /= 6 # 等价于 x = x / 6
print("x /= 6 后:", x) # 输出:5.0
# 结合取模运算的赋值
y = 7
y %= 3 # 等价于 y = y % 3
print("y %= 3 后:", y) # 输出:1(7%3=1)
注意事项
- 赋值运算符右侧优先计算,再赋给左侧变量(如
x = 3 + 5先算 3+5=8,再赋给 x) - 左侧必须是变量(不能是常量,如
5 = x会报错)
四、比较运算符(关系运算符)
比较运算符用于判断两个值的关系,返回布尔值(True/False) ,是条件判断(if 语句)和循环的核心。
| 运算符 | 功能描述 | 示例代码 | 运行结果 |
|---|---|---|---|
| == | 判断两个值是否相等 | 5 == 5、"abc" == "abd" | True、False |
| != | 判断两个值是否不相等 | 5 != 3、1.2 != 1.2 | True、False |
| 左侧是否大于右侧 | 10 > 7、8 > 10 | True、False | |
| < | 左侧是否小于右侧 | 3 < 6、5 < 2 | True、False |
| >= | 左侧是否大于等于右侧 | 7 >= 7、9 >= 10 | True、False |
| <= | 左侧是否小于等于右侧 | 4 <= 6、8 <= 5 | True、False |
实战代码示例
python
运行
# 比较运算符实战
num1 = 20
num2 = 15
str1 = "python"
str2 = "Python"
# 数值比较
print("num1 == num2:", num1 == num2) # 输出:False
print("num1 > num2:", num1 > num2) # 输出:True
print("num1 <= num2 + 5:", num1 <= num2 + 5) # 输出:True(15+5=20)
# 字符串比较(按ASCII码顺序)
print("str1 == str2:", str1 == str2) # 输出:False(大小写ASCII不同)
print("'a' > 'A':", 'a' > 'A') # 输出:True('a'ASCII=97,'A'=65)
# 特殊场景:不同类型比较(除数值与布尔值外,一般返回False)
print(5 == "5") # 输出:False(int vs str)
print(1 == True) # 输出:True(布尔值是int子类,True=1,False=0)
print(0 == False)# 输出:True
应用场景
- 条件判断(如
if score >= 60: print("及格")) - 循环控制(如
while i < 10: i += 1) - 数据筛选(如判断列表中元素是否满足条件)
五、逻辑运算符
逻辑运算符用于组合多个布尔值(比较表达式结果),返回最终的逻辑结果(True/False),支持短路求值(提高效率)。
| 运算符 | 功能描述 | 短路规则 | 示例代码 | 运行结果 |
|---|---|---|---|---|
| and | 逻辑与:所有条件都为 True 才返回 True | 左侧为 False 时,右侧不计算 | (5>3) and (8<10) | True |
| or | 逻辑或:任意一个条件为 True 就返回 True | 左侧为 True 时,右侧不计算 | (5>10) or (8<10) | True |
| not | 逻辑非:取反布尔值 | 无短路(仅单操作数) | not (5>3) | False |
实战代码示例
python
运行
# 逻辑运算符实战
score = 85
age = 20
# 逻辑与(and):同时满足两个条件
if score >= 60 and age >= 18:
print("成年且考试及格") # 输出:成年且考试及格
# 逻辑或(or):满足一个条件即可
if score < 60 or age < 18:
print("未成年或不及格") # 不输出(两个条件都不满足)
else:
print("符合要求") # 输出:符合要求
# 逻辑非(not):取反
is_pass = score >= 60
print("是否不及格:", not is_pass) # 输出:False
# 短路求值演示
def func():
print("函数被执行了")
return True
print("短路或:", True or func()) # 输出:短路或:True(func未执行,左侧已为True)
print("短路与:", False and func()) # 输出:短路与:False(func未执行,左侧已为False)
优先级说明
逻辑运算符优先级:not > and > or,可通过括号改变优先级:
python
运行
print(True or False and False) # 输出:True(先算and,再算or)
print((True or False) and False)# 输出:False(括号改变优先级,先算or)