Python3 运算符¶
概念与用途¶
运算符用于算术、比较、逻辑、位运算、成员测试和对象身份判断。Python 支持链式比较和短路求值,可用于简洁表达边界判断与默认逻辑。
核心语法¶
算术运算包括 + - * / // % **;比较包括 == != < <= > >=;逻辑运算为 and or not;in 测试成员,is 测试是否为同一对象。优先级不清楚时应加括号。
value = 17
print(value // 5, value % 5, value ** 2)
print(10 <= value < 20)
print("py" in "python")
missing = None
print(missing is None)
运算规则表¶
| 类别 | 运算符 | 说明 |
|---|---|---|
| 算术 | + - * / // % ** |
** 优先级高,/ 返回浮点 |
| 比较 | < <= == != >= > |
支持链式比较 |
| 逻辑 | not and or |
短路并返回操作数 |
| 集合/成员 | in not in |
复杂度取决于容器 |
| 身份 | is is not |
比较对象身份 |
示例:短路保护¶
records = [None, "", "42"]
for value in records:
if value is not None and value.isdigit():
print(int(value) + 1)
else:
print("不可转换")
短路可避免对 None 调用方法,但条件过长时应拆成有名称的布尔变量。自定义类可以重载运算符,调用者不能假定 + 永远无副作用或恒为数值加法。
常见错误与工程注意¶
is不能代替==比较字符串或数字值;它主要用于None等单例判断。/总产生浮点结果,整数整除使用//,但负数会向负无穷取整。and、or返回操作数本身而非固定布尔值,接口中应避免类型含糊。