跳转至

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 返回操作数本身而非固定布尔值,接口中应避免类型含糊。