文章目录
前言
依次讲解了算数运算符、比较运算符、逻辑运算符、赋值运算符、成员运算符和运算符优先级等知识点。
一、算术运算符
用于基本的数学运算。
| 运算符 | 名称 | 示例 | 结果 | 说明 |
|---|---|---|---|---|
| + | 加 | 5 + 3 | 8 | 数值相加,或字符串拼接 |
| - | 减 | 5 - 3 | 2 | 数值相减 |
| * | 乘 | 5 * 3 | 15 | 数值相乘,或字符串重复 |
| / | 除 | 5 / 2 | 2.5 | 总是返回浮点数 |
| // | 整除 | 5 // 2 | 2 | 向下取整,返回商的整数部分 |
| % | 取余 | 5 % 2 | 1 | 返回除法余数 |
| ** | 幂 | 2 ** 3 | 8 | 2的3次方 |
重要特性与示例:
python
python
# 1. 除法总是返回浮点数
print(10 / 2) # 输出:5.0 (不是5)
# 2. 整除向下取整(向负无穷方向)
print(7 // 2) # 输出:3
print(-7 // 2) # 输出:-4 (注意:不是-3!)
# 3. 取余运算的符号与被除数相同
print(7 % 2) # 输出:1
print(-7 % 2) # 输出:1 (因为 -7 = -4*2 + 1)
# 4. 字符串的加法和乘法
print("Hello" + " World") # 输出:"Hello World"
print("Hi" * 3) # 输出:"HiHiHi"
二、比较运算符
用于比较两个值,总是返回布尔值 (True 或 False)。
| 运算符 | 名称 | 示例 | 结果 |
|---|---|---|---|
| > | 大于 | 5 > 3 | True |
| < | 小于 | 5 < 3 | False |
| >= | 大于等于 | 5 >= 5 | True |
| <= | 小于等于 | 5 <= 3 | False |
| == | 等于 | 5 == 3 | False |
| != | 不等于 | 5 != 3 | True |
注意点:
python
python
# 1. == 比较值,不是对象身份
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True (值相等)
print(a is b) # False (不是同一个对象)
# 2. 字符串按字典序比较
print("apple" < "banana") # True
print("A" < "a") # True (ASCII码中大写字母在前)
# 3. 链式比较
x = 5
print(1 < x < 10) # True (等价于 1 < x and x < 10)
三、逻辑运算符
用于组合多个条件,操作布尔值。
| 运算符 | 名称 | 示例 | 结果 | 说明 |
|---|---|---|---|---|
| and | 逻辑与 | True and False | False | 两者都为真才为真 |
| or | 逻辑或 | True or False | True | 至少一个为真就为真 |
| not | 逻辑非 | not True | False | 取反 |
关键特性:短路求值
and:如果第一个表达式为False,直接返回False,不再计算第二个。
or:如果第一个表达式为True,直接返回True,不再计算第二个。
python
python
# 1. 短路求值示例
def check():
print("函数被调用了")
return True
print(False and check()) # 输出:False (check()不会被执行)
print(True or check()) # 输出:True (check()不会被执行)
# 2. 返回实际值,不一定是布尔值
print(3 and 5) # 输出:5 (and返回最后一个为真的值)
print(0 and 5) # 输出:0 (and返回第一个为假的值)
print(3 or 5) # 输出:3 (or返回第一个为真的值)
print(0 or 5) # 输出:5 (or返回最后一个为假的值后的第一个真值)
四、赋值运算符
用于给变量赋值,并支持运算与赋值结合。
| 运算符 | 示例 | 等价于 | 说明 |
|---|---|---|---|
| = | 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 | 幂运算后赋值 |
示例:
python
python
x = 10
x += 5 # x 现在是 15
x *= 2 # x 现在是 30
x %= 7 # x 现在是 2 (30 ÷ 7 = 4 余 2)
# 也适用于字符串
text = "Hello"
text += " World" # text 现在是 "Hello World"
五、成员运算符
用于测试序列(如字符串、列表、元组、字典)中是否包含某个成员。
| 运算符 | 名称 | 示例 | 结果 | 说明 |
|---|---|---|---|---|
| in | 包含 | "a" in "apple" | True | 检查元素是否在序列中 |
| not in | 不包含 | "b" not in "apple" | True | 检查元素是否不在序列中 |
在不同数据类型中的应用:
python
python
# 1. 字符串
print("lo" in "hello") # True
print("x" not in "hello") # True
# 2. 列表
fruits = ["apple", "banana", "cherry"]
print("banana" in fruits) # True
print("grape" not in fruits) # True
# 3. 字典 (检查键,不是值)
person = {"name": "Alice", "age": 25}
print("name" in person) # True
print("Alice" in person) # False (字典默认检查键)
print("Alice" in person.values()) # True (明确检查值)
# 4. 集合
numbers = {1, 2, 3, 4, 5}
print(3 in numbers) # True
六、运算符优先级
当表达式中有多个运算符时,Python按照特定顺序计算。以下是从高到低的主要优先级:
() - 括号(最高优先级)
** - 幂运算
*、/、//、% - 乘、除、整除、取余
+、- - 加、减
<、<=、>、>=、==、!= - 比较运算符
not - 逻辑非
and - 逻辑与
or - 逻辑或(最低优先级)
记忆口诀:括号 → 幂 → 乘除 → 加减 → 比较 → 非 → 与 → 或
python
python
# 示例
result = 2 + 3 * 4 ** 2 / 8 # 计算顺序:4**2=16 → 3*16=48 → 48/8=6 → 2+6=8
print(result) # 输出:8.0
# 使用括号改变优先级
result2 = (2 + 3) * (4 ** 2) / 8 # 5 * 16 / 8 = 10.0
print(result2) # 输出:10.0