
下表從高到低列出了運(yùn)算符的優(yōu)先級(jí)。同一行中的運(yùn)算符具有相同優(yōu)先級(jí),然后運(yùn)算符的優(yōu)先級(jí)是運(yùn)算表達(dá)式從左到右
?
Python運(yùn)算符計(jì)算順序:
一般情況下,運(yùn)算符優(yōu)先級(jí)表決定了哪個(gè)運(yùn)算符在別的運(yùn)算符之前計(jì)算。但是,如果你想要改變它們默認(rèn)計(jì)算順序,你得使用圓括號(hào)。例如,你想要在一個(gè)表達(dá)式中讓加法在乘法之前計(jì)算,那么你就得寫成類似(10 + 55) * 13的樣子。
Python運(yùn)算符結(jié)合規(guī)律Python運(yùn)算符通常由左向右結(jié)合,即具有相同優(yōu)先級(jí)的運(yùn)算符按照從左向右的順序計(jì)算。例如,2 + 3 + 4被計(jì)算成(2 + 3) + 4。一些如賦值運(yùn)算符那樣的運(yùn)算符是由右向左結(jié)合的,即a = b = c被處理為a = (b = c)。
Python運(yùn)算符優(yōu)先級(jí)排行榜在一個(gè)表達(dá)式中可能包含多個(gè)有不同運(yùn)算符連接起來的、具有不同數(shù)據(jù)類型的數(shù)據(jù)對(duì)象;由于表達(dá)式有多種運(yùn)算,不同的運(yùn)算順序可能得出不同結(jié)果甚至出現(xiàn)錯(cuò)誤運(yùn)算錯(cuò)誤,因?yàn)楫?dāng)表達(dá)式中含多種運(yùn)算時(shí),必須按一定順序進(jìn)行結(jié)合,才能保證運(yùn)算的合理性和結(jié)果的正確性、唯一性。優(yōu)先級(jí)從上到下依次遞減,最上面具有最高的優(yōu)先級(jí),逗號(hào)操作符具有最低的優(yōu)先級(jí)。表達(dá)式的結(jié)合次序取決于表達(dá)式中各種運(yùn)算符的優(yōu)先級(jí)。優(yōu)先級(jí)高的運(yùn)算符先結(jié)合,優(yōu)先級(jí)低的運(yùn)算符后結(jié)合,同一行中的運(yùn)算符的優(yōu)先級(jí)相同。
以下是實(shí)例
# coding=utf-8
#優(yōu)先級(jí)的簡(jiǎn)單實(shí)例
priorityNumber=2+1*4
print priorityNumber #輸出結(jié)果:6
#優(yōu)先級(jí)使用實(shí)例
#以下優(yōu)先級(jí)排名從高到低,在同一運(yùn)算中,先執(zhí)行優(yōu)先級(jí)高的再執(zhí)行低的,以此類推。
#Top 1:函數(shù)調(diào)用、尋址、下標(biāo)
#Top 2:冪運(yùn)算**
priorityNumber=2*2**3
print priorityNumber #輸出結(jié)果:16
#Top 3:翻轉(zhuǎn)運(yùn)算~
#Top 4:正負(fù)號(hào)
print 1+2*-3 #輸出結(jié)果:-5
#Top 5:*、/、%
print 2+1*2/5 #輸出結(jié)果:2
#Top 6:+、-
print 3<<2+1 #輸出結(jié)果:24
#Top 7:<<、>>
#Top 8:按位&、^、|
#Top 9:比較運(yùn)算符
priority=2*3+2<=2+1*7
print priority #輸出結(jié)果:True
#Top 10:邏輯的not and or
#Top 11:lambda表達(dá)式
2.python運(yùn)算符優(yōu)先級(jí)使用規(guī)律:
#python優(yōu)先級(jí)使用規(guī)律
#1、一般情況下是左結(jié)合的
#ps:在沒有更高優(yōu)先級(jí)運(yùn)算符,即只有同級(jí)運(yùn)算符時(shí)時(shí)從左到右結(jié)合
print 1+2+3*5+5 #輸出結(jié)果:23
#2、出現(xiàn)賦值的時(shí)候一般是右結(jié)合
#ps:在有賦值運(yùn)算符時(shí),是右結(jié)合,即先算出1+2的值以后再賦值給priority
priority=1+2
print priority #輸出結(jié)果:23
記憶小技巧:
#python運(yùn)算符優(yōu)先級(jí)大招
'''比如說有這個(gè)需求:
去商店買水,買3瓶水,每瓶5塊,再買一個(gè)綠箭(假設(shè)綠箭3塊),總共多少錢?
這個(gè)簡(jiǎn)單的應(yīng)用非常明顯,需要先用乘法再用加法,如果這里你忘記了乘法和加法的優(yōu)先級(jí),可以這樣:
'''
print (3*5)+3 #輸出結(jié)果:18
#ps: 這只是一個(gè)簡(jiǎn)單的例子,只是為了告訴大家實(shí)際應(yīng)用中實(shí)在不行咱就放大招。有備無(wú)患。
Python表達(dá)式
Python表達(dá)式基本概念:
python中,值、變量和運(yùn)算符共同組成的整體稱為表達(dá)式
#python表達(dá)式
#1 字符串表達(dá)式
"Hello"
#2 計(jì)算表達(dá)式
2+3
#3 賦值表達(dá)式
first=0
#4 變量表達(dá)式
first
#5 值表達(dá)式
#等等