介紹python中運算子優先順序

安全劍客發表於2019-03-25

下面這個表給出Python的運算子優先順序, 從最低的優先順序(最鬆散地結合)到最高的優先順序(最緊密地結合) 。這意味著在一個表示式中,Python會首先計算表中較下面的運算子,然後在計算列在表上部的運算子。

下面這張表(與Python參考手冊中的那個表一模一樣)已經顧及了完整的需要。事實上,我建議你使用圓括號來分組運算子和運算元,以便能夠明確地指出運算的先後順序,使程式儘可能地易讀。例如,2 + (3 * 4)顯然比2 + 3 * 4清晰。與此同時,圓括號也應該正確使用,而不應該用得過濫(比如2 + (3 + 4))。

表1-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,...] 列表顯示
{key:datum,...} 字典顯示
'expression,...' 字串轉換
計算順序

預設地,運算子優先順序表決定了哪個運算子在別的運算子之前計算。然而,如果你想要改變它們的計算順序,你得使用圓括號。例如,你想要在一個表示式中讓加法在乘法之前計算,那麼你就得寫成類似(2 + 3) * 4的樣子。

結合規律

運算子通常由左向右結合,即具有相同優先順序的運算子按照從左向右的順序計算。例如,2 + 3 + 4被計算成(2 + 3) + 4。一些如賦值運算子那樣的運算子是由右向左結合的,即a = b = c被處理為a = (b = c)。

提示: 合理使用括號增強程式碼的可讀性,在很多場合使用括號都是一個好主意,而沒用括號的話,會使程式得到錯誤結果,或使程式碼可讀性降低,引起閱讀者困惑。。括號在Python語言中不是必須存在的, 不過為了可讀性, 使用括號總是值得的。任何維護你程式碼的人會感謝你, 在你再次閱讀自己的程式碼時,你也會感謝你自己。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2639219/,如需轉載,請註明出處,否則將追究法律責任。

相關文章