python中的 == 和 is 的區別
阿新 • • 發佈:2018-08-02
-s 對比 不能 -- 其他 ont clas 通過 數字
== 比較的是兩邊的值
is 比較的是兩邊的內存地址 通過 id()獲取內存地址
小數據池:我們使用過的值存儲在小數據池中,供其他數據使用.
小數據池僅限於 數字 和 字符串:
數字的小數池範圍 -5---256
字符串中 1.不能有空格;
2. 長度不能超過20個字符;
3. 不能有特殊字符 如:@#$
1. id() 獲得內存地址
a = ‘alex‘ print(id(a)) # 36942544 內存地址
2. == 比較兩邊的值
a = ‘alex‘ b = ‘alex‘ print(a == b) #True n= 10 n1 = 10 print(n == n1) #True li1 = [1,2,3] li2 = [1,2,3] print(li1 == li2) #True
3. is 比較的是內存地址
3.1 列表 字典 元組 集合
#列表 li =[1,2,3] li2 =[1,2,3] print(li is li2) #False #元組 tu =(1,2,3) tu1 =(1,2,3) print(tu is tu1) # False #字典 dic1 = {‘name‘:‘alex‘} dic = {‘name‘:‘alex‘} print(dic1 is dic) #False
對比一下上面的 is #列表 li =[1,2,3] li2 =[1,2,3] print(li == li2) #True #元組 tu =(1,2,3) tu1 =(1,2,3) print(tu == tu1) # True #字典 dic1 = {‘name‘:‘alex‘} dic = {‘name‘:‘alex‘} print(dic1 == dic) #True
3.2 對於str 小數據池
字符串中 1.不能有空格;
2. 長度不能超過20個字符;
3. 不能有特殊字符 如:@#$
a = ‘alex@‘ a1 = ‘alex@‘ print(a is a1) # Fales a = ‘a‘*21 b = ‘a‘*21 print(a is b) #False a = "ab " b = "ab " print(a is b) #False 但是在pycharm中的結果為True
3.3 對於int 小數據池
數字的小數池範圍 -5---256
n = -6 n1 = -6 #超出了範圍 print(n is n1) #False n = -5 n1 = -5 print(n is n1) #True
n = 257
n1 = 257
print(n is n1) #cmd中為False 在pycharm中顯示為True
python中的 == 和 is 的區別