i1 = 205464113
i2 = 205464113
i3 = i1
print(id(i1))
print(id(i2))
print(id(i3))
print(i1 is i2)
print(i1 == i2)
print(i1 is i3)
print(i1 == i3)
print('**********')
f1 = 1.574
f2 = 1.574
f3 = f1
print(id(f1))
print(id(f2))
print(id(f3))
print(f1 is f2)
print(f1 == f2)
print(f1 is f3)
print(f1 == f3)
print('**********')
str1 = 'james'
str2 = 'james'
str3 = str1
print(id(str1))
print(id(str2))
print(id(str3))
print(str1 is str2)
print(str1 == str2)
print(str1 is str3)
print(str1 == str3)
print('**********')
t1 = (1, 2, 3)
t2 = (1, 2, 3)
t3 = t1
print(id(t1))
print(id(t2))
print(id(t3))
print(t1 is t2)
print(t1 == t2)
print(t1 is t3)
print(t1 == t3)
print('**********')
結果如下:
前面三個都很好理解,最後乙個 id 由於 t1 和 t2 id 不同所以判斷 is 的時候為 false,表示並不是指向同一物件,但是物件值是一樣的,所以判斷 == 的時候為 true。
再來乙個例子就:
a = 2.0
b = 2
print(id(a))
print(id(b))
print(a is b)
print(a == b)
結果如下:
解釋:顯然 a 是乙個浮點數型別,b 是乙個整型,所以肯定不是指向同一物件,對應的物件識別符號也不同,所以判斷 is 為 false。但是由於數學上 2.0 = 2 所以判斷 == 為 true。
可以認為:is 為 true,== 必為 true。因為指向同一物件,當然值是一樣的。但是 == 為 true,is 不一定為 true,上例即為反例。
python is和 的區別
在 python 中會用到物件之間比較,可以用 也可以用 is 但是它們的區別是什麼呢?is 比較的是兩個例項物件是不是完全相同,它們是不是同乙個物件,占用的記憶體位址是否相同。萊布尼茨說過 世界上沒有兩片完全相同的葉子 這個is正是這樣的比較,比較是不是同一片葉子 即比較的id是否相同,這id類似...
python is 和 的區別
python中的物件包含三百要素 id type value 其中id用來唯一標識乙個物件度,type標識物件的知型別,道value是物件的值內 is判斷的容是a物件是否就是b物件,是通過id來判斷的 判斷的是a物件的值是否和b物件的值相等,是通過value來判斷的 如下 或許可以幫助你理解。a 1...
Python「is」和「 」的區別
變數 用來標識 identify 一塊記憶體區域。為了方便表示記憶體,我們操作變數實質上是在操作變數指向的那塊記憶體單元。編譯器負責分配。我們可以使用python內建函式id 來獲取變數的位址 變數名 是乙個識別符號 dientify 用來代之一塊記憶體空間,使用這個變數名,我們可以很方便的操作這塊...