運算子是可以操縱運算元值的結構。如下一個表示式:10 + 20 = 30
。這裡,10
和20
稱為運算元,+
則被稱為運算子。
Python語言支援以下型別的運算子 -
下面讓我們依次來看看所有的運算子。
假設變數a
的值是10
,變數b
的值是21
,則 -
運算子 | 描述 | 範例 |
---|---|---|
+ |
加法運算,將運算子兩邊的運算元增加。 | a + b = 31 |
- |
減法運算,將運算子左邊的運算元減去右邊的運算元。 | a – b = -11 |
* |
乘法運算,將運算子兩邊的運算元相乘 | a * b = 210 |
/ |
除法運算,用右運算元除左運算元 | b / a = 2.1 |
% |
模運算,用右運算元除數左運算元並返回餘數 | b % a = 1 |
** |
對運算子進行指數(冪)計算 | a ** b ,表示10 的21 次冪 |
// |
地板除 - 運算元的除法,其結果是刪除小數點後的商數。 但如果其中一個運算元為負數,則結果將被保留,即從零(向負無窮大)捨去 | 9//2 = 4 , 9.0//2.0 = 4.0 , -11//3 = -4 , -11.0//3 = -4.0 |
有關算術運算子的範例程式碼,請參考::/25/12885.html
比較(關係)運算子比較它們兩邊的值,並確定它們之間的關係。它們也稱為關係運算子。假設變數a
的值10
,變數b
的值是20
,則 -
運算子 | 描述 | 範例 |
---|---|---|
== |
如果兩個運算元的值相等,則條件為真。 | (a == b) 求值結果為 false |
!= |
如果兩個運算元的值不相等,則條件為真。 | (a != b) 求值結果為 true |
> |
如果左運算元的值大於右運算元的值,則條件成為真。 | (a > b) 求值結果為 false |
< |
如果左運算元的值小於右運算元的值,則條件成為真。 | (a < b) 求值結果為 true |
>= |
如果左運算元的值大於或等於右運算元的值,則條件成為真。 | (a >= b) 求值結果為 false |
<= |
如果左運算元的值小於或等於右運算元的值,則條件成為真。 | (a <= b) 求值結果為 true |
有關比較(關係)運算子的範例程式碼,請參考:/25/12886.html
假設變數a
的值10
,變數b
的值是20
,則 -
運算子 | 描述 | 範例 |
---|---|---|
= |
將右側運算元的值分配給左側運算元 | c = a + b 表示將a + b 的值分配給c |
+= |
將右運算元相加到左運算元,並將結果分配給左運算元 | c + = a 等價於c = c + a |
-= |
從左運算元中減去右運算元,並將結果分配給左運算元 | c -= a 等價於 c = c - a |
*= |
將右運算元與左運算元相乘,並將結果分配給左運算元 | c *= a 等價於 c = c * a |
/= |
將左運算元除以右運算元,並將結果分配給左運算元 | c /= a 等價於 c = c / a |
%= |
將左運算元除以右運算元的模數,並將結果分配給左運算元 | c %= a 等價於 c = c % a |
**= |
執行指數(冪)計算,並將值分配給左運算元 | c **= a 等價於 c = c ** a |
//= |
運算子執行地板除運算,並將值分配給左運算元 | c //= a 等價於 c = c // a |
有關賦值運算子的範例程式碼,請參考:/25/12887.html
Python語言支援以下邏輯運算子。假設變數a
的值為True
,變數b
的值為False
,那麼 -
運算子 | 描述 | 範例 |
---|---|---|
and |
如果兩個運算元都為真,則條件成立。 | (a and b) 的結果為False |
or |
如果兩個運算元中的任何一個非零,則條件成為真。 | (a or b) 的結果為True |
not |
用於反轉運算元的邏輯狀態。 | not(a and b) 的結果為True 。 |
有關邏輯運算子的範例程式碼,請參考:/25/12888.html
按位元運算子執行逐位運算。 假設變數a = 60
; 和變數b = 13
; 現在以二進位制格式,它們將如下 -
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Python的內建函式bin()
可用於獲取整數的二進位制表示形式。
以下是Python語言支援位運算操作符 -
運算子 | 描述 | 範例 |
---|---|---|
& |
如果它存在於兩個運算元中,則操作符複製位到結果中 | (a & b) 結果表示為 0000 1100 |
如果它存在於任一運算元,則複製位。 | (a b) = 61 結果表示為 0011 1101 |
|
^ |
二進位制互斥或。如果它是一個運算元集合,但不是同時是兩個運算元則將複製位。 | (a ^ b) = 49 (結果表示為 0011 0001 ) |
~ |
二進位制二補數,它是一元的,具有「翻轉」的效果。 | (~a ) = -61 有符號的二進位制數,表示為1100 0011 的二補數形式。 |
<< |
二進位制左移,左運算元的值由右運算元指定的位數左移。 | a << 2 = 240 (結果表示為 1111 0000 ) |
>> |
二進位制右移,左運算元的值由右運算元指定的位數右移。 | a >> 2 = 15 (結果表示為0000 1111 ) |
有關按位元運算子的範例程式碼,請參考:/25/12889.html
Python成員運算子測試給定值是否為序列中的成員,例如字串,列表或元組。 有兩個成員運算子,如下所述 -
運算子 | 描述 | 範例 |
---|---|---|
in |
如果在指定的序列中找到一個變數的值,則返回true ,否則返回false 。 |
- |
not in |
如果在指定序列中找不到變數的值,則返回true ,否則返回false 。 |
- |
有關成員運算子的範例程式碼,請參考:/25/12890.html
身份運算子比較兩個物件的記憶體位置。常用的有兩個身份運算子,如下所述 -
運算子 | 描述 | 範例 |
---|---|---|
is |
如果運算子任一側的變數指向相同的物件,則返回True ,否則返回False 。 |
|
is not |
如果運算子任一側的變數指向相同的物件,則返回True ,否則返回False 。 |
- |
有關身份運算子的範例程式碼,請參考:/25/12891.html
下表列出了從最高優先順序到最低優先順序的所有運算子,如下所示 -
序號 | 運算子 | 描述 |
---|---|---|
1 | ** |
指數(次冪)運算 |
2 | ~ + - |
二補數,一元加減(最後兩個的方法名稱是+@ 和-@ ) |
3 | * / % // |
乘法,除法,模數和地板除 |
4 | + - |
|
5 | >> << |
向右和向左位移 |
6 | & |
按位元與 |
7 | ^ |
按位元互斥或和常規的「OR 」 |
8 | <= < > >= |
比較運算子 |
9 | <> == != |
等於運算子 |
10 | = %= /= //= -= += *= **= |
賦值運算子 |
11 | is is not |
身份運算子 |
12 | in not in |
成員運算子 |
13 | not or and |
邏輯運算子 |
有關運算子優先順序的範例程式碼,請參考:/25/12892.html