Python運(yùn)算符兩種應(yīng)用方案詳解
在計(jì)算機(jī)語(yǔ)言中被廣泛的應(yīng)用的Python運(yùn)算符優(yōu)先級(jí),如果你在應(yīng)用的過(guò)程中遇到困難時(shí),比如,如果你有一個(gè)如2 + 3 * 4那樣的表達(dá)式,是先做加法呢,還是先做乘法?下面的文章就是詳細(xì)的介紹。
我們的中學(xué)數(shù)學(xué)告訴我們應(yīng)當(dāng)先做乘法——這意味著乘法運(yùn)算符的優(yōu)先級(jí)高于加法運(yùn)算符。
下面這個(gè)表給出Python運(yùn)算符優(yōu)先級(jí),從最低的優(yōu)先級(jí)(最松散地結(jié)合)到最高的優(yōu)先級(jí)(最緊密地結(jié)合)。這意味著在一個(gè)表達(dá)式中,Python運(yùn)算符會(huì)首先計(jì)算表中較下面的運(yùn)算符,然后在計(jì)算列在表上部的運(yùn)算符。
運(yùn)算符 描述
- lambda Lambda表達(dá)式
- or 布爾“或”
- and 布爾“與”
- not x 布爾“非”
- in,not in 成員測(cè)試
- is,is not 同一性測(cè)試
- <,<=,>,>=,!=,== 比較
- | 按位或
- ^ 按位異或
- & 按位與
- <<,>> 移位
- +,- 加法與減法
- *,/,% 乘法、除法與取余
- +x,-x 正負(fù)號(hào)
- ~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)換
在表中列在同一行的運(yùn)算符具有 相同優(yōu)先級(jí) 。例如,+和-有相同的優(yōu)先級(jí)。
計(jì)算順序
默認(rèn)地,運(yùn)算符優(yōu)先級(jí)表決定了哪個(gè)運(yùn)算符在別的運(yùn)算符之前計(jì)算。然而,如果你想要改變它們的計(jì)算順序,你得使用圓括號(hào)。例如,你想要在一個(gè)表達(dá)式中讓加法在乘法之前計(jì)算,那么你就得寫成類似(2 + 3) * 4的樣子。
結(jié)合規(guī)律由左向右結(jié)合,即具有相同Python運(yùn)算符優(yōu)先的運(yùn)算符按照從左向右的順序計(jì)算。例如,2 + 3 + 4被計(jì)算成(2 + 3) + 4。一些如賦值運(yùn)算符那樣的運(yùn)算符是由右向左結(jié)合的,即a = b = c被處理為a = (b = c)。
【編輯推薦】