【Python】 解析Python中的運算符

Python中的運算符相比較於傳統的C/C++差異不是很大,主要是一些個別的運算符上的差異。包括:算術、比較、賦值、位、邏輯、成員、身份等。
它們的優先級:緩存

符號 說明
** 指數(最高優先級)
~,+,- 按位翻轉,一元加號和減號(最後兩個的方法名爲+@ 和 -@,例如:+5,-5 正5,負5)
*,/,%,// 乘,除,取模和取整數
+,- 二元加號和減號
>>,<< 右移,左移運算符
& 按位與
|,^ 按位或,按位異或
<=,>=,==,!= 比較運算符
=,%=,/=,//=,-=,+=,*=,**= 賦值運算符
is,is not 身份運算符
in,not in 成員運算符
not,or,and 邏輯運算符

 

a = 10
print(a ** 2)#100
print(~a)#a的二進制源碼00001010,取反後11110101,(是負數用補碼,反碼10001010,補碼10001011)
print(+a)#5
print(-a)#-5
print(a>>1)#5
print(a<<1)#10
print(a&2)#2
print(a^1)#11
print(a|3)#9
print(a!=6)#True
print(a/3)#3.333
print(a//3)#3
print(a%3)#1
print(a>6 and a<12)#True
print(not a)#False

 注意:Python中是沒有一元遞減符(--),一元遞加符(++),邏輯運算符(&&,||)的。spa

in,not in的使用

a = 3
list = [1,2,3,4,5]
if (a in list):
    print("a 在給定的list 列表中");
else if(a not in list):
    print("a 不在給定的list列表中");
else:
    print("不可能出現");

== 和 is 的區別

Python語言中的變量一般有3個屬性,分別是name,id和value,其中的name爲變量名,id與內存地址聯合,value變量的值。

== 和 is 均可以用來比較兩個對象,可是==比較是對象的值(value),is比較的是對象的地址(id)。例如:code

a = [1,2,3]
b = [1,2,3]
print("a的id是",id(a));#a的id是140509619346760
print("b的id是",id(b));#b的id是140509748600456
print(a == b)#True
print(a is b)#False

其中==運算符比較的是變量的value,is運算符比較的是變量的id。a和b變量的值是同樣的,因此a==b爲True;a和b變量的id是不同的,因此a is b 爲False。

可是並非全部狀況都是這樣,對於小整數,Python緩存了-5~256之間的全部整數,共262個,所以[-5,256]的每一個整數只有惟一的一個地址。例如:對象

a = 200
b = 200 #變量b和變量a 具備相同的地址
print(a == b)#True
print(a is b)#True
相關文章
相關標籤/搜索