天天看點

Python3中的運算符

Python3中的運算符

執行個體參考: ​​ http://www.runoob.com/python3/python3-basic-operators.html ​​

Python 語言支援的運算符包括算術運算符、比較(關系)運算符、指派運算符、邏輯運算符、位運算符、成員運算符和身份運算符。

(一) Python 算術運算符

以下假設變量 a 為 10 ,變量 b 為 21 :

運算符 描述 執行個體
+ 加 - - 兩個對象相加 a+b 輸出結果 31
- 減 - - 得到負數或是一個數減去另一個數 a-b 輸出結果 -11
* 乘 - - 兩個數相乘或是傳回一個被重複若幹次的字元串 a*b 輸出結果 210
/ 除 - - x 除以 y b/a 輸出結果 2.1
% 取模 - - 傳回除法的餘數 b%a 輸出結果 1
** 幂 - - 傳回 x 的 y 次幂 a**b 為 10 的 21 次方
// 取整除 - - 向下取接近除數的整數

9//2 的輸出結果為 4

-9//2 的輸出結果為 -5

(二) Python 比較運算符

以下假設變量 a 為 10 ,變量 b 為 20 :

運算符 描述 執行個體
== 等于 - - 比較對象是否相等 (a==b) 傳回 False
!= 不等于 - - 比較兩個對象是否不相等 (a!=b) 傳回 True
> 大于 - - 傳回 x 是否大于 y (a>b) 傳回 False
< 小于 - - 傳回 x 是否小于 y 。所有比較運算符傳回 1 表示真,傳回 表示假。這分别與特殊的變量 True 和 False 等價。注意,這些變量名的大寫。 (a<b) 傳回 True
>= 大于等于 - - 傳回 x 是否大于等于 y 。 (a>=b) 傳回 False
<= 小于等于 - - 傳回 x 是否小于等于 y 。 (a<=b) 傳回 True

(三) Python 指派運算符

以下假設變量 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

(四) Python 位運算符

按位運算符是把數字看作二進制來進行計算的。 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

運算符 描述 執行個體
& 按位與運算符:參與運算的兩個值 , 如果兩個相應位都為 1 , 則該位的結果為 1 , 否則為 (a&b) 輸出結果 12 ,二進制解釋: 0000 1100
| 按位或運算符:隻要對應的二個二進位有一個為 1 時,結果位就為 1 (a|b) 輸出結果 61 ,二進制解釋: 0011 1101
^ 按位異或運算符:當兩對應的二進位相異時,結果為 1 (a^b) 輸出結果 49 ,二進制解釋: 0011 0001
~ 按位取反運算符:對資料的每個二進制位取反 , 即把 1 變為 , 把 變為 1 。 ~x 類似于 -x-1 (~a) 輸出結果 -61 ,二進制解釋: 1100 0011 ,在一個有符号二進制數的補碼形式。
<< 左移動運算符:運算數的各二進位全部左移若幹位,由 "<<" 右邊的數指定移動的位數,高位丢棄,低位補 。 a<<2 輸出結果 240 ,二進制解釋: 1111 0000
>> 右移動運算符:把 “ >> ” 左邊的運算數的各二進位全部右移若幹位, ">>" 右邊的數指定移動的位數 a>>2 輸出結果 15 ,二進制解釋: 0000 1111

(五) Python 邏輯運算符

Python 語言支援邏輯運算符,以下假設變量 a 為 10 , b 為 20:

運算符 邏輯表達式 描述 執行個體
and x and y 布爾 “ 與 ” - - 如果 x 為 False , 那麼 x and y 傳回 False ,否則傳回 y 的計算值 (a and b) 傳回 20
or x or y 布爾 “ 或 ” - - 如果 x 是 True , 那麼 傳回 x 的值,否則傳回 y 的計算值 (a or b) 傳回 10
not not x 布爾 “ 非 ” - - 如果 x 為 True , 那麼 傳回 False 。如果 x 為 False , 那麼 傳回 True not(a and b) 傳回 False

(六) Python 成員運算符

除了以上的一些運算符之外, Python 還支援成員運算符,測試執行個體中包含了一系列的成員,包括字元串,清單或元組。

運算符 描述 執行個體
in 如果在指定的序列中找到值 那麼 傳回 True ,否則傳回 False x 在 y 序列中 , 如果 x 在 y 序列中傳回 True
not in 如果在指定的序列中沒有找到值 那麼 傳回 True ,否則傳回 False x 不在 y 序列中 , 如果 x 不在 y 序列中傳回 True

(七) Python 身份運算符

身份運算符用于比較兩個對象的存儲單元

運算符 描述 執行個體
is is 是判斷兩個辨別符是不是引用自一個對象 x is y , 類似 id(x)==id(y) , 如果引用的是同一個對象 那麼 傳回 True ,否則傳回 False
is not is not 是判斷兩個辨別符是不是引用自不同對象 x is not y ,類似 id(a)!=id(b) 。如果引用的不是同一個對象 那麼 傳回結果 True ,否則傳回 False 。

需要注意的是, id() 函數用于擷取對象記憶體位址。

運算符 is 與 == 有什麼差別?

is 用于判斷兩個變量引用對象是否為同一個, == 用于判斷引用變量的值是否相等。例如:

>>> a = [1, 2, 3]

>>> b = a

>>> b is a

True

>>> b == a

True

>>> b = a[:]

>>> b is a

False

>>> b == a