下面這個(gè)表給出Python的運(yùn)算符優(yōu)先級, 從最低的優(yōu)先級(最松散地結(jié)合)到最高的優(yōu)先級(最緊密地結(jié)合) 。這意味著在一個(gè)表達(dá)式中,Python會(huì)首先計(jì)算表中較下面的運(yùn)算符,然后在計(jì)算列在表上部的運(yùn)算符。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供托里企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為托里眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
下面這張表(與Python參考手冊中的那個(gè)表一模一樣)已經(jīng)顧及了完整的需要。事實(shí)上,我建議你使用圓括號來分組運(yùn)算符和操作數(shù),以便能夠明確地指出運(yùn)算的先后順序,使程序盡可能地易讀。例如,2 + (3 * 4)顯然比2 + 3 * 4清晰。與此同時(shí),圓括號也應(yīng)該正確使用,而不應(yīng)該用得過濫(比如2 + (3 + 4))。
運(yùn)算符 | 描述 |
---|---|
lambda | Lambda表達(dá)式 |
or | 布爾“或” |
and | 布爾“與” |
not x | 布爾“非” |
in,not in | 成員測試 |
is,is not | 同一性測試 |
<,<=,>,>=,!=,== | 比較 |
| | 按位或 |
^ | 按位異或 |
& | 按位與 |
<<,>> | 移位 |
+,- | 加法與減法 |
*,/,% | 乘法、除法與取余 |
+x,-x | 正負(fù)號 |
~x | 按位翻轉(zhuǎn) |
** | 指數(shù) |
x.attribute | 屬性參考 |
x[index] | 下標(biāo) |
x[index:index] | 尋址段 |
f(arguments...) | 函數(shù)調(diào)用 |
(experession,...) | 綁定或元組顯示 |
[expression,...] | 列表顯示 |
{key:datum,...} | 字典顯示 |
'expression,...' | 字符串轉(zhuǎn)換 |
默認(rèn)地,運(yùn)算符優(yōu)先級表決定了哪個(gè)運(yùn)算符在別的運(yùn)算符之前計(jì)算。然而,如果你想要改變它們的計(jì)算順序,你得使用圓括號。例如,你想要在一個(gè)表達(dá)式中讓加法在乘法之前計(jì)算,那么你就得寫成類似(2 + 3) * 4的樣子。
運(yùn)算符通常由左向右結(jié)合,即具有相同優(yōu)先級的運(yùn)算符按照從左向右的順序計(jì)算。例如,2 + 3 + 4被計(jì)算成(2 + 3) + 4。一些如賦值運(yùn)算符那樣的運(yùn)算符是由右向左結(jié)合的,即a = b = c被處理為a = (b = c)。
提示: 合理使用括號增強(qiáng)代碼的可讀性,在很多場合使用括號都是一個(gè)好主意,而沒用括號的話,會(huì)使程序得到錯(cuò)誤結(jié)果,或使代碼可讀性降低,引起閱讀者困惑。。括號在Python語言中不是必須存在的, 不過為了可讀性, 使用括號總是值得的。任何維護(hù)你代碼的人會(huì)感謝你, 在你再次閱讀自己的代碼時(shí),你也會(huì)感謝你自己。