工具用的顺手吗?
你的反馈能帮助我们做得更好
快速查询Python所有运算符的优先级与结合性规则。
此表是收录语法的参考子集,不执行或验证示例。数字是本站分组,不能替代所用语言版本的完整语法、类型和求值规则;例子保留原始代码与字面值。 参考来源
(expressions...)主要表达式与访问左结合用圆括号分组表达式或创建元组,是优先级最高的语法结构。
(a + b) * c[expressions...]主要表达式与访问左结合构造列表字面量,可使用列表推导式。
[x * 2 for x in items]{key: value, ...}主要表达式与访问左结合构造字典字面量,可使用字典推导式。
{k: v for k, v in pairs}{expressions...}主要表达式与访问左结合构造集合字面量,可使用集合推导式。
{x for x in items}x[index]主要表达式与访问左结合通过索引访问序列、映射或可下标对象的元素。
items[0]x[start:end]主要表达式与访问左结合对序列进行切片操作,支持步长 start:end:step。
text[1:5:2]x(arguments...)主要表达式与访问左结合调用函数、方法或可调用对象。
len(items)x.attribute主要表达式与访问左结合访问对象的属性或方法。
user.nameawait xawait 等待右结合在协程中挂起执行并等待可等待对象的结果。
result = await fetch()**幂运算右结合计算左操作数的右操作数次幂;右结合,2**3**2 等价于 2**(3**2)。
2 ** 10+x一元运算右结合保留数值本身,通常用于显式表示正值,部分自定义类可重载。
+count-x一元运算右结合返回操作数的相反数。
-offset~x一元运算右结合对整数每一位取反,结果为 -(x+1)。
~0b1010*乘除取余左结合数值相乘;字符串/序列与整数相乘可实现重复。
width * scale@乘除取余左结合Python 3.5+ 的矩阵乘法运算符,常用于 NumPy 等库。
matrix_a @ matrix_b/乘除取余左结合真除法,结果始终为浮点数。
total / count//乘除取余左结合向下取整除法,结果向负无穷取整。
10 // 3%乘除取余左结合整数取余;对字符串可执行旧式 % 格式化。
index % 2+加减运算左结合数值相加;序列拼接,如字符串、列表、元组。
x + y-加减运算左结合数值相减;集合差集操作不通过此运算符。
max_value - min_value<<位移运算左结合将整数二进制位向左移动指定数量,相当于乘以 2 的幂。
1 << bit>>位移运算左结合将整数二进制位向右移动指定数量,相当于整除 2 的幂。
flags >> 1&按位运算左结合对两个整数逐位执行与运算;对集合表示交集。
options & MASK^按位运算左结合对两个整数逐位执行异或运算;对集合表示对称差集。
set_a ^ set_b|按位运算左结合对两个整数逐位执行或运算;对集合表示并集。
FLAG_A | FLAG_B==比较与判断左结合比较两个对象的值是否相等,调用对象的 __eq__ 方法。
status == 200!=比较与判断左结合比较两个对象是否不相等。
value != None>比较与判断左结合判断左操作数是否大于右操作数。
count > limit>=比较与判断左结合判断左操作数是否大于或等于右操作数。
count >= minimum<比较与判断左结合判断左操作数是否小于右操作数。
index < total<=比较与判断左结合判断左操作数是否小于或等于右操作数。
index <= last_indexin比较与判断左结合判断元素是否在容器中,调用容器的 __contains__ 方法。
key in mappingnot in比较与判断左结合判断元素是否不在容器中。
name not in blacklistis比较与判断左结合判断两个引用是否指向同一对象,比较 id() 值。
value is Noneis not比较与判断左结合判断两个引用是否指向不同对象。
result is not Nonenot x逻辑运算右结合对布尔或条件表达式取反,结果为 True 或 False。
not is_emptyand逻辑运算左结合短路与;左侧为假值时返回左侧,否则返回右侧的求值结果。
user and user.is_activeor逻辑运算左结合短路或;左侧为真值时返回左侧,否则返回右侧的求值结果。
value or default_valuex if cond else y条件表达式右结合三元条件运算,当 cond 为真返回 x,否则返回 y。
title if title else 'Untitled'lambdalambda 表达式无结合性创建匿名函数,返回单个表达式的值。
square = lambda x: x * x:=海象赋值右结合Python 3.8+ 的命名表达式,在表达式中完成赋值;优先级最低。
if (n := len(items)) > 10: ...概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
运算符优先级决定混合表达式中哪些部分先结合。例如 a + b * c 会先结合乘法,再参与加法。查询结果按页面的等级号分组:1 表示最高优先级,数字越大,绑定越弱;这个编号是页面的排序标签,不是 Python 语言规范公布的分值。结果项还列出类别、结合性、简要说明和示例。
输入框可按符号、名称、说明、示例片段或等级号筛选;类别与结合性也可分别缩小列表。页面展示的是查表结果,不会运行输入的完整表达式。
结合性用于理解同一优先级的连续运算。幂运算从右向左结合,所以 2 ** 3 ** 2 等价于 2 ** (3 ** 2),结果为 512。乘法和加法优先级不同,先后顺序由优先级决定;当运算表达式较长时,用括号写出预期结构通常更易检查。
比较、成员测试和身份测试在 Python 中处于同一优先级,并支持链式比较,例如 0 < x < 10。这类语法不宜只按普通二元运算符的“左结合”标签来推断完整求值行为。
语言规则来源:
:= 命名表达式的语义背景;核验日期:2026-09-26。指南
按步骤完成操作,并通过示例核对输入与结果。
在关键词框输入符号或关键词,例如 **、and、成员 或某个示例片段。
需要缩小范围时,选择算术、比较、布尔、位运算等类别;也可按左结合、右结合或无结合性筛选。
在结果中检查等级号、类别、结合性和示例。等级号较小意味着绑定较强。
点复制按钮可复制运算符或该条示例,再回到自己的表达式中补上变量和括号。
not a == b 中会先完成比较,再对比较结果取反;在 a and b == c 中,比较也先于逻辑与。括号能直接标明预期结构,尤其适合审阅较长条件。
== 比较值,is 检查是否为同一对象;查到相似符号后仍要核对它的语义和操作数类型。
场景
查看这项工具在不同工作与生活流程中的用法。
读到算术、比较和逻辑运算混在一起的条件表达式时,先分别查符号,再按优先级拆成小段,确认代码实际按预期组合。
学习者可按类别浏览幂、移位、成员判断和逻辑运算等条目,对照示例记住常见层级,再用 Python 解释器验证完整语句。
团队成员可先查清一个运算符的绑定顺序,再通过括号或拆分变量表达意图,减少读者对隐式优先级的猜测。
问答
集中解答高频疑问与容易混淆的问题。
不是。此页的 1 号组最高,数字增大时绑定优先级降低。语言参考表本身按从高到低列出规则,并没有为运算符规定这里使用的数字编号。
工具按运算符条目展示常见写法;符号的含义仍取决于操作数类型和语法位置,例如 + 可用于数值相加,也可用于序列拼接。查到符号不代表任意类型组合都有效。
不会。它筛选的是预先列出的运算符说明和示例,不解析或执行你输入的完整代码。语法错误、变量类型和运行时结果需交给目标 Python 版本的解释器核对。
须知
使用前了解适用范围、结果限制与必要提醒。
优先级表会随 Python 语言规则演进;页面包含 := 命名表达式等新语法,涉及旧版本或特定上下文时应再查对应版本的语言参考。** 与一元正负号的组合有特别规则,比较也有链式行为,不能把结合性标签当成所有情形的完整语义说明。
当前列表是速查目录,不是 Python 语法分析器或代码执行环境,也不承诺覆盖所有表达式语法形式。复杂条件可用括号明确分组,再用实际目标版本运行验证;不要仅凭显示编号判断语句是否合法或程序结果。
推荐
查找相关工具、专题与可用的 API 能力。