第 10 课 · 阶段二 · 基础语法

运算符详解

这一课系统掌握 Python 的运算符:算术、比较、赋值、逻辑、成员与身份,并理清它们的优先级,写出不出错的表达式。

第 10 课阶段二 · 基础语法难度:入门建议时长:30 分钟关键词:算术 · 比较 · 逻辑 · 赋值

🎯 学完本课你将掌握

  • 熟练使用 5 类常用运算符
  • 理解逻辑运算符的短路特性
  • 掌握运算符优先级,避免写出歧义表达式

一、算术运算符

运算符含义示例结果
+7 + 310
-7 - 34
*7 * 321
/除(结果是浮点)7 / 23.5
//整除(向下取整)7 // 23
%取余7 % 21
**2 ** 38
算术运算.py
1a, b = 17, 5
2print(a + b) # 22
3print(a - b) # 12
4print(a * b) # 85
5print(a / b) # 3.4
6print(a // b) # 3
7print(a % b) # 2
8print(2 ** 5) # 32
✅ 要点
// 是向下取整的整除:-7 // 2 结果是 -4 而不是 -3,因为 -3.5 向下取整是 -4。初学者常在这里踩坑。

二、比较运算符(结果一定是布尔值)

运算符含义示例结果
==等于3 == 3True
!=不等于3 != 3False
>大于5 > 3True
<小于5 < 3False
>=大于等于5 >= 5True
<=小于等于4 <= 3False
⚠️ 注意
判断相等用双等号 ==,单个 = 是赋值。写错是新手最常见错误:if x = 5 会直接报错。

三、赋值运算符

复合赋值.py
1x = 10
2x += 5 # 等价于 x = x + 5
3print(x) # 15
4x -= 3 # 12
5x *= 2 # 24
6x /= 4 # 6.0
7x //= 2 # 3.0
8x **= 2 # 9.0
9print(x)

四、逻辑运算符

运算符含义示例结果
and且(两边都真才真)True and FalseFalse
or或(一边真就真)True or FalseTrue
not非(取反)not TrueFalse
逻辑运算.py
1age = 20
2score = 85
3print(age > 18 and score > 60) # True
4print(age > 25 or score > 60) # True
5print(not age > 30) # True
💡 提示
and/or 有短路特性:and 左边为假就不再算右边;or 左边为真就不再算右边。写条件时把“便宜的判断”放前面能提升效率。

五、成员与身份运算符

in / is
1print("a" in "banana") # True 字符串包含
2print(3 in [1, 2, 3]) # True 列表包含
3print(5 not in [1, 2, 3]) # True
4
5x = [1, 2]
6y = [1, 2]
7print(x == y) # True 值相等
8print(x is y) # False 不是同一个对象

六、运算符优先级

优先级从高到低大致是:括号 → 幂 → 正负号 → 乘除取余 → 加减 → 比较 → not → and → or。拿不准就加括号,代码可读性第一。

优先级验证.py
1print(2 + 3 * 4) # 14(先乘后加)
2print((2 + 3) * 4) # 20(括号优先)
3print(2 ** 3 ** 2) # 512(幂从右到左:3**2=9, 2**9=512)
4print(not 3 > 2) # False

七、常见错误与解决

常见错误与解决

错误现象原因 / 解决方法
把 == 写成 = 导致报错赋值是 =,判断相等是 ==,注意区分。
SyntaxError 在运算符处检查运算符是否成对(如 // 写成 / /),以及括号是否完整。
浮点数比较不相等0.1 + 0.2 != 0.3 是浮点精度问题,比较用 abs(a-b) < 1e-9。
✍️ 小练习
写一个程序:定义 score=88、attendance=95,用逻辑运算符判断“成绩>=80 且出勤>=90”,并打印 7 % 3、13 // 4、2 ** 10 的结果。
📌 本节小结
算术(+ - * / // % **)、比较(== != > < >= <=)、赋值(+= 等)、逻辑(and/or/not)、成员(in)是五大主力。判断相等用 ==,优先级不放心就加括号。下一课进入字符串的深入世界。