python學習之運算表達式優先級
阿新 • • 發佈:2017-09-30
位與 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學習之運算表達式優先級