Python基本運算符
什麼是操作符?
簡單的回答可以使用表達式4 + 5等於9,在這裡4和5被稱為操作數,+被稱為操符。 Python語言支持操作者有以下幾種類型。
-
算術運算符
-
比較(即關係)運算符
-
賦值運算符
-
邏輯運算符
-
位運算符
-
會員操作符
-
標識操作符
讓我們逐一看看所有的運算符。
Python算術運算符:
假設變量a持有10和變量b持有20,則:
[ 查看示例 ]
操作符 | 描述符 | 例子 |
---|---|---|
+ | 加法 - 對操作符的兩側增加值 | a + b = 30 |
- | 減法 - 減去從左側操作數右側操作數 | a - b = -10 |
* | 乘法 - 相乘的運算符兩側的值 | a * b = 200 |
/ | 除 - 由右側操作數除以左側操作數 | b / a = 2 |
% | 模 - 由右側操作數和餘返回除以左側操作數 | b % a = 0 |
** | 指數- 執行對操作指數(冪)的計算 | a**b = 10 的冪 20 |
// | 地板除 - 操作數的除法,其中結果是將小數點後的位數被除去的商。 | 9//2 = 4 而 9.0//2.0 = 4.0 |
Python的比較操作符:
假設變量a持有10和變量b持有20,則:
[ 查看示例 ]
運算符 | 描述 | 示例 |
---|---|---|
== | 檢查,兩個操作數的值是否相等,如果是則條件變為真。 | (a == b) 不為 true. |
!= | 檢查兩個操作數的值是否相等,如果值不相等,則條件變為真。 | (a != b) 為 true. |
<> | 檢查兩個操作數的值是否相等,如果值不相等,則條件變為真。 | (a <> b) 為 true。這個類似於 != 運算符 |
> | 檢查左操作數的值是否大於右操作數的值,如果是,則條件成立。 | (a > b) 不為 true. |
< | 檢查左操作數的值是否小於右操作數的值,如果是,則條件成立。 | (a < b) 為 true. |
>= | 檢查左操作數的值是否大於或等於右操作數的值,如果是,則條件成立。 | (a >= b) 不為 true. |
<= | 檢查左操作數的值是否小於或等於右操作數的值,如果是,則條件成立。 | (a <= b) 為 true. |
Python賦值運算符:
假設變量持有10和變量b持有20,則:
[ 示例 ]
運算符 | 描述 | 示例 |
---|---|---|
= | 簡單的賦值運算符,賦值從右側操作數左側操作數 | c = a + b將指定的值 a + b 到 c |
+= | 加法AND賦值操作符,它增加了右操作數左操作數和結果賦給左操作數 | c += a 相當於 c = c + a |
-= | 減AND賦值操作符,它減去右邊的操作數從左邊操作數,並將結果賦給左操作數 | c -= a 相當於 c = c - a |
*= | 乘法AND賦值操作符,它乘以右邊的操作數與左操作數,並將結果賦給左操作數 | c *= a 相當於 c = c * a |
/= | 除法AND賦值操作符,它把左操作數與正確的操作數,並將結果賦給左操作數 | c /= a 相當於= c / a |
%= | 模量AND賦值操作符,它需要使用兩個操作數的模量和分配結果左操作數 | c %= a is equivalent to c = c % a |
**= | 指數AND賦值運算符,執行指數(功率)計算操作符和賦值給左操作數 | c **= a 相當於 c = c ** a |
//= | 地板除,並分配一個值,執行地板除對操作和賦值給左操作數 | c //= a 相當於 c = c // a |
Python位運算符:
位運算符作用於位和位操作執行位。假設,如果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語言支持下位運算符
[ 示例 ]
操作符 | 描述 | 示例 |
---|---|---|
& | 二進製和複製操作了一下,結果,如果它存在於兩個操作數。 | (a & b) = 12 即 0000 1100 |
| | 二進製或複製操作了一個比特,如果它存在一個操作數中。 | (a | b) = 61 即 0011 1101 |
^ | 二進製異或運算符的副本,如果它被設置在一個操作數而不是兩個比特。 | (a ^ b) = 49 即 0011 0001 |
~ | 二進製的補運算符是一元的,並有“翻轉”位的效果。 | (~a ) = -61 即 1100 0011以2的補碼形式由於帶符號二進製數。 |
<< | 二進位向左移位運算符。左操作數的值左移由右操作數指定的位數。 | a << 2 = 240 即 1111 0000 |
>> | 二進位向右移位運算符。左操作數的值是由右操作數指定的位數向右移動。 | a >> 2 = 15 即 0000 1111 |
Python邏輯運算符:
Python語言支持以下邏輯運算符。假設變量a持有10和變量b持有20則:
[ 示例 ]
運算符 | 描述 | 示例 |
---|---|---|
and | 所謂邏輯與運算符。如果兩個操作數都是真的,那麼則條件成立。 | (a and b) 為 true. |
or | 所謂邏輯OR運算符。如果有兩個操作數都是非零然後再條件變為真。 | (a or b) 為 true. |
not | 所謂邏輯非運算符。用於反轉操作數的邏輯狀態。如果一個條件為真,則邏輯非運算符將返回false。 | not(a and b) 為 false. |
Python成員運算符:
除了前麵討論的運算符,Python成員運算符,在一個序列中成員資格的測試,如字符串,列表或元組。有兩個成員運算符解釋如下:
[ 示例 ]
操作符 | 描述 | 示例 |
---|---|---|
in | 計算結果為true,如果它在指定找到變量的順序,否則false。 | x在y中,在這裡產生一個1,如果x是序列y的成員。 |
not in | 計算結果為true,如果它不找到在指定的變量順序,否則為false。 | x不在y中,這裡產生結果不為1,如果x不是序列y的成員。 |
Python標識運算符:
標識符比較兩個對象的內存位置。兩個運算符標識解釋如下:
[ 查看示例 ]
運算符 | 描述 | 例子 |
---|---|---|
is | 計算結果為true,如果操作符兩側的變量指向相同的對象,否則為false。 | x是y,這裡結果是1,如果id(x)的值為id(y)。 |
is not | 計算結果為false,如果兩側的變量操作符指向相同的對象,否則為true。 | x不為y,這裡結果不是1,當id(x)不等於id(y)。 |
Python運算符優先級
下表列出了所有運算符從最高優先級到最低。
[ 查看示例 ]
運算符 | 描述 |
---|---|
** | 冪(提高到指數) |
~ + - | 補碼,一元加號和減號(方法名的最後兩個+@和 - @) |
* / % // | 乘,除,取模和地板除 |
+ - | 加法和減法 |
>> << | 左,右按位轉移 |
& | 位'AND' |
^ | | 按位異'或`'和定期`或' |
<= < > >= | 比較運算符 |
<> == != | 等式運算符 |
= %= /= //= -= += *= **= | 賦值運算符 |
is is not | 標識運算符 |
in not in | 成員運算符 |
not or and | 邏輯運算符 |
原文:http://www.gitbook.net/python/python_basic_operators.htm