# 知识库

# 2.1.6 运算符与表达式

Python中的运算符用于执行数学计算、比较、逻辑判断和赋值等操作，是编程的基础部分。课程将其分为五类：算术运算符、关系运算符、逻辑运算符、赋值运算符和成员运算符。

算术运算符完成加、减、乘、除、取整除法、求余和幂运算。减号只有一个运算对象时表示求相反数，有两个运算对象时表示减法。`//` 与 `%` 常用于整数，分别得到相除的商和余数。关系运算符也称比较运算符，用于判断相等或大小，结果为布尔值 `True` 或 `False`。例如 `a = 87` 时，`a >= 60` 与 `a <= 100` 均为 `True`。逻辑运算符作用于布尔值。要表示 `a` 在 60～100 之间，可写 `(a>=60) and (a<=100)`，也可写成更接近数学习惯的 `60<=a<=100`。

基本赋值运算符 `=` 把右侧表达式的结果赋给左侧变量。复合赋值把算术运算与赋值合在一起，如 `a += b` 相当于 `a = a + b`；`a = 4` 后再执行 `a += 3`，`a` 变为 7。注意 `a = 5; b = a + 3` 只把和赋给 `b`，`a` 仍为 5。成员运算符测试值是否存在于字符串、列表、元组、集合或字典中。`'abc' in 'abc def'`、`3 in [3, 6, 9]` 均为 `True`。对字典，`in` 只测键、不测值：`font = {'字体':'宋', '字号':14, '颜色':'黑色'}` 时，`'字体' in font` 为 `True`，`'宋' in font` 为 `False`。

表达式由操作数（变量、常量）和运算符按语法规则连接而成。优先级从高到低大致为：算术、关系、逻辑、赋值、成员。复杂表达式应加括号明确顺序，既可避免歧义，也更易读。例如判断“a 在 100～200 且为偶数”，写成 `((a>=100) and (a<=200)) and (a%2==0)` 更清晰。常见坑：用 `in` 测字典的值；混淆 `//`（商）与 `%`（余数）；误以为 `b = a + 3` 会改写 `a`；不加括号而依赖默记优先级。

## 关键要点
- 五类运算符：算术、关系、逻辑、赋值、成员。
- 算术：加、减、乘、除、取整除法 `//`、求余 `%`、幂运算；一元 `-` 求相反数，二元 `-` 做减法。
- 关系（比较）运算符结果为 `True` 或 `False`，如 `a = 87` 时 `a >= 60`、`a <= 100` 均为真。
- 逻辑运算示例：`(a>=60) and (a<=100)`，也可写 `60<=a<=100`。
- `=` 为基本赋值；`a += b` 相当于 `a = a + b`。
- `in` 可测字符串、列表、元组、集合、字典；对字典只测键、不测值。
- 表达式 = 操作数 + 运算符；优先级大致为算术 > 关系 > 逻辑 > 赋值 > 成员；复杂式用括号提高可读性。
