下面這個表給出python的運算子優先順序,從最低的優先順序(最鬆散地結合)到最高的優先順序(最緊密地結合)。這意味著在乙個表示式中,python會首先計算表中較下面的運算子,然後在計算列在表上部的運算子。
下面這張表(與python參考手冊中的那個表一模一樣)已經顧及了完整的需要。事實上,我建議你使用圓括號來分組運算子和運算元,以便能夠明確地指出運算的先後順序,使程式盡可能地易讀。例如,2 + (3 * 4)
顯然比2 + 3 * 4
清晰。與此同時,圓括號也應該正確使用,而不應該用得過濫(比如2 + (3 + 4)
)。
表5.2 運算子優先順序
運算子描述
lambda
lambda表示式
or布林「或」
and布林「與」
not x
布林「非」
in,not in
成員測試
is,is not
同一性測試
<,<=,>,>=,!=,==比較|
按位或^
按位異或
&按位與
<<,>>
移位+,-
加法與減法
*,/,%
乘法、除法與取餘
+x,-x
正負號~x
按位翻轉
**指數
x.attribute
屬性參考
x[index]
下標x[index:index]
定址段f(arguments...)
函式呼叫
(experession,...)
繫結或元組顯示
[expression,...]
列表顯示
字典顯示
'expression,...'
字串轉換
其中我們還沒有接觸過的運算子將在後面的章節中介紹。
在表中列在同一行的運算子具有 相同優先順序 。例如,+
和-
有相同的優先順序。
預設地,運算子優先順序表決定了哪個運算子在別的運算子之前計算。然而,如果你想要改變它們的計算順序,你得使用圓括號。例如,你想要在乙個表示式中讓加法在乘法之前計算,那麼你就得寫成類似(2 + 3) * 4
的樣子。
運算子通常由左向右結合,即具有相同優先順序的運算子按照從左向右的順序計算。例如,2 + 3 + 4
被計算成(2 + 3) + 4
。一些如賦值運算子那樣的運算子是由右向左結合的,即a = b = c
被處理為a = (b = c)
。
運算子優先順序 Python 運算子優先順序
python 運算子優先順序 運算子描述 lambda lambda表示式 or布林 或 and布林 與 not x 布林 非 in,not in 成員測試 is,is not 同一性測試 比較 按位或 按位異或 按位與 移位 加法與減法 乘法 除法與取餘 x,x 正負號 x 按位翻轉 指數 x.a...
運算子優先順序 C 運算子優先順序
c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...
運算子優先順序 PHP運算子優先順序
php運算子優先順序 結合方向 運算子附加資訊 非結合clone new clone 和 new左 array 非結合 遞增 遞減運算子 非結合 int float string array object bool 型別非結合 instanceof 型別右結合 邏輯操作符 左 算術運算子 左 算術運...