Python運算符包括賦值運算符、算術運算符、關系運算符、邏輯運算符、位運算符、成員運算符和身份運算符。
表達式是將不同類型的數據(常亮、變量、函數)用運算符按照一定得規則連接起來的式子。
算術運算符和算術表達式
算術運算符包括四則運算符、求模預算符和冪運算符。
| 算術運算符 | 表達式 | 說明 |
| + | x + y | 加法運算 |
| - | x - y | 減法運算 |
| * | x * y | 乘法運算 |
| / | x / y | 除法運算 |
| % | x%y | 求模運算 |
| ** | x**y | x的y次方 |
| // | x // y | 兩數相除向下取整 |
Python中的除法運算(Python3.x)進行浮點數計算,也就是說 x/y返回的結果是浮點數。
%為取模運算,x%y的結果將是x除以y的余數。
如果要從整數相除中得到一個整數, 丟棄任何小數部分, 可以使用另一個操作符"//"。
x = 5 y = 3 a = 4 b = 2 print(x + y) #結果為 7 print(x - y) #結果為2 print(x * y) #結果為15 print(x / y) #結果為1.6666666666666667 不同的機器浮點數的結果可能不同 print(x // y) #向下去整結果為1 print(x % y) #兩數相除取余結果為2 print(x**y) #5的3次冪結果為125 print(a / b) #結果為浮點數2.0 print(a % b)#取余結果為0 print(a // b)#取整結果為2
關系運算符是對兩個對象進行比較。
| 運算符 | 表達式 | 說明 |
| == | a==b | 等於,比較對象是否相等 |
| != 或 <> |
a !=b a <>b |
不等於,比較兩個對象是否不相等 |
| > | a > b | 大於,比較a是否大於b |
| < | a < b | 小於,比較a是否小於b |
| >= | a>=b | 大於等於,比較a是否大於或者等於b |
| <= | a<=b | 小於等於,比較a是否小於或者等於b |
a = 4 b = 2 c = 2 print(a == b) #False print(a != b) #True print(a <> b) #True print(a > b) #True print(a < b) #False print(a >= b) #True print(c <= b) #True
邏輯運算符與邏輯運算表達式
| 運算符 | 表達式 | 說明 |
| and | a and b | 邏輯與,當a為True時才計算b |
| or | a or b | 邏輯或,當a為False時才計算b |
| not | not a | 邏輯非 |
a = 4 b = 2 c = 0 print(a>b and b>c) #a>b為True繼續計算b>c,b>c也為True則結果為True print(a>b and b<c)#a>b為True繼續計算c<b,b>c結果為False則結果為False print(a>b or c<b) #a>b為True則不繼續計算c<b,結果為True print(not c<b) #c<b為True not True結果為False print(not a<b) #a<b為False not Flase結果為True
位運算符
按位運算符是把數字看作二進制來進行計算的。
| 運算符 | 表達式 | 說明 |
| & | a & b | 按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 |
| | | a | b | 按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1 |
| ^ | a ^ b | 按位異或運算符:當兩對應的二進位相異時,結果為1 |
| ~ | ~a | 按位取反運算符:對數據的每個二進制位取反,即把1變為0,把0變為1 |
| << | a<<2 | 左移動運算符:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。 |
| >> | a>>2 | 右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數 |
| 運算 |
操作 |
結果 |
| a & b |
0011 1100 & 0000 1101 0000 1100 |
12 |
| a | b |
0011 1100 | 0000 1101 0011 1101 |
61 |
| a ^ b |
0011 1100 ^ 0000 1101 0011 0001 |
49 |
| ~a |
~ 0011 1100 1100 0011 |
-61 有符號二進制數的補碼 |
| a << 2 |
0011 1100 -> 1111 0000 |
240 |
| a >>2 |
0011 1100-> 0000 1111 |
15 |
賦值運算符
| 運算符 | 表達式 | 說明 |
| = | c=a + b | 簡單賦值運算符, 將 a + b 的運算結果賦值為 c |
| += | c +=a | 加法賦值運算符 c += a 等效於 c = c + a |
| -= | c -=a | 減法賦值運算符 c -= a 等效於 c = c - a |
| *= | c *=a | 乘法賦值運算符 c *= a 等效於 c = c * a |
| /= | c /=a | 除法賦值運算符 c /= a 等效於 c = c / a |
| %= | c %=a | 取模賦值運算符 c %= a 等效於 c = c % a |
| //= | c //=a | 冪賦值運算符 c **= a 等效於 c = c ** a |
| **= | c **=a | 取整除賦值運算符 c //= a 等效於 c = c // a |
成員運算符,測試實例中包含了一系列的成員,包括字符串,列表或元組。
| 運算符 | 表達式 | 說明 |
| in | a in b | 如果在指定的序列中找到值返回 True,否則返回 False。 |
| not in | a not in b | 如果在指定的序列中沒有找到值返回 True,否則返回 False。 |
a=4 c=0 list = [1,2,3,4,5] if (a in list): print("%d is in list:%r"%(a,list)) if (c not in list): print("%d is not in list: %r"%(c,list))
Python的算術表達式具有結合性和優先性。結合性是指表達式按照從左到右、先乘除后加減的原則進行計算。
Python運算符優先級(由高到低)
** 指數 (最高優先級)
~ + - 按位翻轉, 一元加號和減號 (正負號)
* / % // 乘,除,取模和取整除
+ - 加法減法
>> << 右移,左移運算符
& 位 'AND'
^ | 位運算符
<= < > >= 比較運算符
<> == != 等於運算符
= %= /= //= -= += *= **= 賦值運算符
is is not 身份運算符
in not in 成員運算符
not or and 邏輯運算符
另外,小括號可以改變優先級,有()的情況優先計算()中的表達式。
