程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Python >> Python運算符優先級

Python運算符優先級

編輯:Python

  如果你有一個如2 + 3 * 4那樣的表達式,是先做加法呢,還是先做乘法?我們的中學數學告訴我們應當先做乘法——這意味著乘法運算符的優先級高於加法運算符。

  下面這個表給出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語言中不是必須存在的, 不過為了可讀性, 使用括號總是值得的。任何維護你代碼的人會感謝你, 在你再次閱讀自己的代碼時,你也會感謝你自己。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved