如果这个工具帮到了你,可以请作者喝杯咖啡 ☕
快速查询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: ...在编写Python表达式时,运算符优先级决定了哪些操作先执行,但时常遗忘具体顺序导致逻辑错误。本工具可即时查询Python内置运算符的优先级级别与结合性,帮助开发者准确理解表达式求值顺序,避免潜在bug。
*、+ 或逻辑运算符 and。*,输出优先级 13,结合性:左结合;输入 **,输出优先级 15,结合性:右结合。查询仅支持Python内置运算符,输入自定义算子或非运算符字符将返回提示。结果依据Python官方文档,适用CPython 3.x版本,不同实现可能略有差异。工具为前端查询,不收集任何用户输入数据。
建议熟记常用优先级规律:幂运算**最高、正负号与按位取反次之,乘除优先于加减,比较运算符优先级低于算术,逻辑运算符not、and、or逐渐降低。表达式a + b * c会先计算b * c;2 ** 1 ** 3由于**右结合,等价于2 ** (1 ** 3),结果为2。开发时书写复杂表达式建议使用括号显式控制顺序,提升可读性。