1. 程式人生 > >python學習之運算表達式優先級

python學習之運算表達式優先級

位與 int order 運算符 body width mic -s 字符串

python中,有變量、值和運算符參與的語句叫做表達式。

比如:

#字符串表達式
"hello"
#運算表達式
2+3
#賦值表達式
test  = "hello"
#變量表達式
test

運算符優先級

運算符描述
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

>>> 8>>2
2
>>> 8>>3
1
>>> 8
>>4 0

這裏,移位數是>>右邊的數,被移位數是>>左邊的數。

左移:左移一位表示乘以2

>>> 3<<4
48

這裏,移位數是<<右邊的數,被移位數是<<左邊的數。

總結:移位數總是位於移位符號(<<或者>>)的右邊被移位數總是位於移位符號的左邊

優先級

運算符優先級按照上表由低到高

其他優先級如下:

#以下優先級排名從高到低,在同一運算中,先執行優先級高的再執行低的,以此類推。

#Top 1:函數調用、尋址、下標

#Top 2:冪運算**
priorityNumber
=2*2**3 print priorityNumber #輸出結果:16 #Top 3:翻轉運算~ #Top 4:正負號 print 1+2*-3 #輸出結果:-5 #Top 5:*、/、% print 2+1*2/5 #輸出結果:2 #Top 6:+、- print 3<<2+1 #輸出結果:24 #Top 7:<<、>> #Top 8:按位&、^、| #Top 9:比較運算符 priority=2*3+2<=2+1*7 print priority #輸出結果:True #Top 10:邏輯的not and or #Top 11:lambda表達式

一般操作,由左到右;賦值操作,由右到左

>>> a = 1+3
>>> a
4

括號優先操作

>>> b = (1+2)*3
>>> b
9

python學習之運算表達式優先級