文章目录
- 前言
- 一、算术运算符
- 二、比较运算符
- 三、逻辑运算符
- 四、赋值运算符
- 五、成员运算符
- 六、运算符优先级
前言
依次讲解了算数运算符、比较运算符、逻辑运算符、赋值运算符、成员运算符和运算符优先级等知识点。
一、算术运算符
用于基本的数学运算。
| 运算符 | 名称 | 示例 | 结果 | 说明 |
|---|---|---|---|---|
| + | 加 | 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# 1. 除法总是返回浮点数print(10/2)# 输出:5.0 (不是5)# 2. 整除向下取整(向负无穷方向)print(7//2)# 输出:3print(-7//2)# 输出:-4 (注意:不是-3!)# 3. 取余运算的符号与被除数相同print(7%2)# 输出:1print(-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# 1. == 比较值,不是对象身份a=[1,2,3]b=[1,2,3]print(a==b)# True (值相等)print(aisb)# False (不是同一个对象)# 2. 字符串按字典序比较print("apple"<"banana")# Trueprint("A"<"a")# True (ASCII码中大写字母在前)# 3. 链式比较x=5print(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# 1. 短路求值示例defcheck():print("函数被调用了")returnTrueprint(Falseandcheck())# 输出:False (check()不会被执行)print(Trueorcheck())# 输出:True (check()不会被执行)# 2. 返回实际值,不一定是布尔值print(3and5)# 输出:5 (and返回最后一个为真的值)print(0and5)# 输出:0 (and返回第一个为假的值)print(3or5)# 输出:3 (or返回第一个为真的值)print(0or5)# 输出: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 x=10x+=5# x 现在是 15x*=2# x 现在是 30x%=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# 1. 字符串print("lo"in"hello")# Trueprint("x"notin"hello")# True# 2. 列表fruits=["apple","banana","cherry"]print("banana"infruits)# Trueprint("grape"notinfruits)# True# 3. 字典 (检查键,不是值)person={"name":"Alice","age":25}print("name"inperson)# Trueprint("Alice"inperson)# False (字典默认检查键)print("Alice"inperson.values())# True (明确检查值)# 4. 集合numbers={1,2,3,4,5}print(3innumbers)# True六、运算符优先级
当表达式中有多个运算符时,Python按照特定顺序计算。以下是从高到低的主要优先级:
() - 括号(最高优先级)
** - 幂运算
*、/、//、% - 乘、除、整除、取余
+、- - 加、减
<、<=、>、>=、==、!= - 比较运算符
not - 逻辑非
and - 逻辑与
or - 逻辑或(最低优先级)
记忆口诀:括号 → 幂 → 乘除 → 加减 → 比较 → 非 → 与 → 或
python# 示例result=2+3*4**2/8# 计算顺序:4**2=16 → 3*16=48 → 48/8=6 → 2+6=8print(result)# 输出:8.0# 使用括号改变优先级result2=(2+3)*(4**2)/8# 5 * 16 / 8 = 10.0print(result2)# 输出:10.0