1. 程式人生 > >python中的 == 和 is 的區別

python中的 == 和 is 的區別

-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 的區別