python判斷條件中的兩個典型語句is和==
==就是等值判斷,判斷兩個對象的內容是否相等;
而is是身份判斷符,事實上是對兩個對象是否為同一對象的判斷;
因此其本質是對兩個對象id進行的判斷,即對象的內存地址;
因此個人覺得is的強度要強於==
我們知道在python中,變量不需要定義,在申請內存空間時是相對一視同仁的,根據需要存儲的數據的實際數據類型進行區分。
進行一個測試
a=1;
b=1;
if(a is b):
print("a is b");
print(id(a));
print(id(b));
測試結果

可以看見兩個對象a和b,id相同,因此is判斷成立;實際上我認為這是一種節約內存空間的策略?(相同內容對象指向同一地址)
但並非內容相同的對象其地址就一定相同,再上一個例子:
a=[1,2,3];
b=[1,2,3];
if(a is b):
print("a is b");
else:
print("a is not b");
print(id(a));
print(id(b));
運行結果:
可以發現對於list對象,即便二者內容一致,其id也是不相同的,顯然is判斷也是不成立的。
事實上相同內容整數和字符串對象申請內存空間時其ID是一致的,其他的並不相同。