工具用的順手嗎?
你的回饋能幫助我們做得更好
快速查詢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 表達式,會依語言規則分組;運算子優先順序說明不同層級如何結合,結合性則補充同一層連續出現時的方向。這份速查把收錄項目按層級排列,並列出符號、分類、結合性、名稱、說明與示例,適合在讀程式、複習語法或檢查條件式時快速定位。
結果上的數字是這份表自己的分組標記:1 代表最高,數字愈大,優先順序愈低。它不是 Python 官方為運算子規定的分數。先依數字比較層級,再查看項目本身的例子與說明,較不容易把列表標號誤當成語言規格。
算術運算中,乘除與取餘比加減先結合,所以 a + b * c 會先分組為 a + (b * c)。冪運算 ** 的結合方向是由右向左,像 2 ** 3 ** 2 會分組成 2 ** (3 ** 2)。若表達式較長,括號能直接標出閱讀者預期的分組。
位元運算的順序要特別留意:& 高於 ^,而 ^ 又高於 |。因此 a & b ^ c | d 依序先結合 a & b,再結合 ^ c,最後才結合 | d。Python 官方參考表也把三者列在不同優先層級;不要把符號在表中的排列方向看反。
同一層級的運算子通常由左向右結合,** 與條件表達式則由右向左結合。比較、成員測試與身分測試同屬比較層級,且 Python 支援鏈式比較;例如 0 < x < 10 會檢查兩側條件,中間的 x 只求值一次。
表中也收錄 await、lambda、條件表達式與 := 命名表達式等語法項目。Python 官方文件指出,命名表達式自 Python 3.8 加入;這項版本資訊可協助讀者理解它在語法參考表中的位置。
語言規則來源:
指南
依步驟完成操作,並透過範例核對輸入與結果。
在關鍵詞欄輸入符號或項目文字,例如 **、and、lambda,也可輸入說明、示例片段或分組號碼。
若結果太多,先選運算子分類,再依左結合、右結合或無結合性縮小範圍;選「全部」可清除該項篩選。
閱讀結果卡的分組號碼、分類、結合性、名稱、說明與示例。需要帶走資料時,可複製該項符號或示例程式碼。
例如,想確認冪運算方向,可搜尋 ** 並查看右結合標籤與示例;要複習比較或布林運算,可先按分類,再用 and、not 等關鍵字定位。
情境
查看這項工具在不同工作與生活流程中的用法。
程式審閱者遇到比較、not、and 或 or 混在一起時,可先按布林或比較分類查各自層級,再用括號把團隊希望表達的分組寫清楚。
學習者整理遮罩或旗標表達式時,可搜尋 &、^、|,核對三者的先後順序與示例,再回到自己的程式確認每個運算元代表的資料。
教學者或自學者可依分類查看 lambda、條件表達式和 := 等項目,複製符號或例句放入筆記,並附上課堂或專案使用的 Python 版本。
問答
集中解答常見疑問與容易混淆的問題。
不是。這份表以 1 表示最高層級,號碼愈大代表結合愈弱;這些數字是查表用的排序標記,不是 Python 規範中的官方分數。
2 ** 3 ** 2 不是先算左邊的兩次方?** 由右向左結合,因此它等同於 2 ** (3 ** 2),括號中的冪運算先分組。若要改成先算 2 ** 3,需明確寫成 (2 ** 3) ** 2。
0 < x < 10 會先把第一個比較結果拿去比較嗎?不會。Python 將比較運算視為可鏈接的語法,這個例子會檢查 0 < x 與 x < 10,而 x 只求值一次;它不是把第一個比較的布林結果再與 10 比較。
須知
使用前了解適用範圍、結果限制與必要提醒。
這是供查找的語法參考子集,不是完整語法目錄。輸入欄會篩選已收錄條目的符號、名稱、說明、示例與分組號碼;頁面不會解析或執行整段程式,也不會判斷變數型別、語法錯誤或執行結果。示例只供閱讀與複製,請在目標 Python 版本的直譯器中自行確認。
表單標籤、分類與結合性篩選器使用繁體中文;目前資料條目的名稱與說明保留收錄時的簡體中文,程式符號與程式碼示例則維持原樣。因此,用符號或英文關鍵字搜尋通常較直接;若以中文搜尋,請留意條目文字使用簡體字。這個內容語言情況不代表規則只適用於特定地區。
分組號碼和簡短的結合性欄位不涵蓋所有 Python 語法細節;比較項目的「左結合」是摘要標示,不能完整表達比較鏈的特殊語法。比較鏈、運算元型別、括號限制與語法可用版本都可能影響實際解讀;尤其閱讀 :=、await 或較長的表達式時,請對照所用版本的 Python 語言參考,必要時以程式執行結果驗證。
推薦
查找相關工具、專題與可用的 API 能力。