下面這個表給出Python的運算符優先級,從最低的優先級(最鬆散地結合)到最高的優先級(最緊密地結合)。這意味着在一個表達式中,Python會首先計算表中較下面的運算符,而後在計算列在表上部的運算符。html
下面這張表(與Python參考手冊中的那個表如出一轍)已經顧及了完整的須要。事實上,我建議你使用圓括號來分組運算符和操做數,以便可以明確地指出運算的前後順序,使程序儘量地易讀。例如,2 + (3 * 4)顯然比2 + 3 * 4清晰。與此同時,圓括號也應該正確使用,而不該該用得過濫(好比2 + (3 + 4))。python
表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,...' | 字符串轉換 |
計算順序linux
默認地,運算符優先級表決定了哪一個運算符在別的運算符以前計算。然而,若是你想要改變它們的計算順序,你得使用圓括號。例如,你想要在一個表達式中讓加法在乘法以前計算,那麼你就得寫成相似(2 + 3) * 4的樣子。express
結合規律函數
運算符一般由左向右結合,即具備相同優先級的運算符按照從左向右的順序計算。例如,2 + 3 + 4被計算成(2 + 3) + 4。一些如賦值運算符那樣的運算符是由右向左結合的,即a = b = c被處理爲a = (b = c)。測試
提示: 合理使用括號加強代碼的可讀性,在不少場合使用括號都是一個好主意,而沒用括號的話,會使程序獲得錯誤結果,或使代碼可讀性下降,引發閱讀者困惑。。括號在Python語言中不是必須存在的, 不過爲了可讀性, 使用括號老是值得的。任何維護你代碼的人會感謝你, 在你再次閱讀本身的代碼時,你也會感謝你本身。htm