Python提供了丰富的运算符用于各种计算和逻辑操作。本文将全面介绍Python中的三大类基础运算符:算术运算符、比较运算符和逻辑运算符,并通过实例演示它们的用法。
一、算术运算符
算术运算符用于执行基本的数学运算。
1. 基本算术运算符
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
+ | 加法 | 5 + 3 | 8 |
- | 减法 | 10 - 4 | 6 |
* | 乘法 | 7 * 2 | 14 |
/ | 除法 | 15 / 3 | 5.0 |
// | 整除 | 15 // 2 | 7 |
% | 取模 | 15 % 4 | 3 |
** | 幂运算 | 2 ** 3 | 8 |
示例代码:
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333333333333335
print(a // b) # 3
print(a % b) # 1
print(a ** b) # 1000
2. 增强赋值运算符
这些运算符结合了算术运算和赋值操作。
| 运算符 | 等价于 | 示例 | 结果 |
|---|---|---|---|
+= | a = a + b | a = 5; a += 3 | 8 |
-= | a = a - b | a = 5; a -= 2 | 3 |
*= | a = a * b | a = 5; a *= 2 | 10 |
/= | a = a / b | a = 10; a /= 2 | 5.0 |
//= | a = a // b | a = 10; a //= 3 | 3 |
%= | a = a % b | a = 10; a %= 3 | 1 |
**= | a = a ** b | a = 2; a **= 3 | 8 |
示例代码:
x = 10
x += 5 # 等价于 x = x + 5
print(x) # 15
y = 20
y //= 3 # 等价于 y = y // 3
print(y) # 6
二、比较运算符
比较运算符用于比较两个值,返回布尔值True或False。
1. 基本比较运算符
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
== | 等于 | 5 == 5 | True |
!= | 不等于 | 5 != 3 | True |
> | 大于 | 5 > 3 | True |
< | 小于 | 5 < 3 | False |
>= | 大于或等于 | 5 >= 5 | True |
<= | 小于或等于 | 5 <= 3 | False |
示例代码:
a = 10
b = 20
print(a == b) # False
print(a != b) # True
print(a > b) # False
print(a < b) # True
print(a >= 10) # True
print(b <= 15) # False
2. 链式比较
Python支持链式比较,可以简化多个条件的比较。
# 传统写法
x = 5
if x > 0 and x < 10:
print("x在0和10之间")
# 链式比较写法
if 0 < x < 10:
print("x在0和10之间")
三、逻辑运算符
逻辑运算符用于组合多个条件。
1. 基本逻辑运算符
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
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 < 18 or not has_license:
print("不能驾驶") # 不会执行
# 使用not运算符
is_raining = False
if not is_raining:
print("天气晴朗") # 会执行
2. 短路求值特性
Python的逻辑运算符具有短路求值特性:
and:如果第一个表达式为False,不会计算第二个表达式or:如果第一个表达式为True,不会计算第二个表达式
def check():
print("函数被调用")
return True
# 由于第一个条件已经是True,or运算符不会调用check()
True or check() # 不会输出"函数被调用"
# 由于第一个条件已经是False,and运算符不会调用check()
False and check() # 不会输出"函数被调用"
3. 运算符优先级
当多种运算符混合使用时,遵循以下优先级(从高到低):
**幂运算*,/,//,%乘除类运算+,-加减法==,!=,>,<,>=,<=比较运算not逻辑非and逻辑与or逻辑或
示例:
result = 5 + 3 * 2 ** 2 # 等价于 5 + (3 * (2 ** 2)) = 17
print(result)
flag = not True or False and True # 等价于 (not True) or (False and True) = False
print(flag)
四、特殊运算符用法
1. 字符串运算
# 字符串连接
name = "张" + "三" # "张三"
# 字符串重复
line = "-" * 20 # "--------------------"
# 字符串比较(按字典序)
print("apple" < "banana") # True
2. 列表运算
# 列表连接
list1 = [1, 2] + [3, 4] # [1, 2, 3, 4]
# 列表重复
zeros = [0] * 5 # [0, 0, 0, 0, 0]
# 列表比较(按元素顺序)
print([1, 2] < [1, 3]) # True
3. 身份运算符
is和is not用于比较对象是否是同一个对象(内存地址相同)。
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b) # True,同一个对象
print(a is c) # False,值相同但不是同一个对象
print(a == c) # True,值相同
五、运算符重载
Python允许通过特殊方法重载运算符,自定义类的运算行为。
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
"""重载+运算符"""
return Vector(self.x + other.x, self.y + other.y)
def __str__(self):
return f"Vector({self.x}, {self.y})"
v1 = Vector(2, 3)
v2 = Vector(4, 5)
print(v1 + v2) # Vector(6, 8)
常见可重载运算符的特殊方法:
__add__:+__sub__:-__mul__:*__truediv__:/__eq__:==__lt__:<- 等等

14万+

被折叠的 条评论
为什么被折叠?



