在了解is 與 == 這兩種運算子區別之前,首先要知道python中物件包含的三個基本要素,分別是:id(身份標識)、type(資料型別) 和 value(值)
x = 123
print(id(x)) # 4305324896 id獲取變數記憶體位址
print(type(x)) # typ獲取e變數的型別
# 首先看下list
l1 = [1,2,3]
l2 = [1,2,3]
print("l1 id is , l2 id is ".format(id(l1), id(l2))) #l1 id is 4366569928, l2 id is 4366570056
print(l1 is l2) # false
print(l1 == l2) # true
# 看下dict
d1 =
d2 =
print("d1 id is , d2 id is ".format(d1=id(d1), d2=id(d2))) # d1 id is 4366538072, d2 id is 4366536848
print(d1 is d2) # false
print(d1 == d2) # true
# 測試下int
i1 = 1
i2 = 1
print("i1 id is , i2 id is ".format(i1=id(i1), i2=id(i2))) # i1 id is 4305320992, i2 id is 4305320992
print(i1 is i2) # true 當記憶體位址相同的時候返回true
print(i1 == i2) # true
# 測試下str
s1 = "a"
s2 = "a"
print("s1 id is , s2 id is ".format(s1=id(s1), s2=id(s2))) # s1 id is 4364003736, s2 id is 4364003736
print(s1 is s2) # true
print(s1 == s2) # true
# 來乙個特殊的str
s3 = "a "
s4 = "a "
print("s3 id is , s4 id is ".format(s3=id(s3), s4=id(s4))) # s3 id is 4366553192, s4 id is 4366553304
print(s3 is s4) # false
print(s3 == s4) # true
Python is 與 的區別
python時常常會用到對兩個物件進行對比,有點c語言基礎的人都會想到用 但python提供了一種更為優雅的寫法 is 但在實際中,兩者之間還是有區別的,在某些情況下並不通用。首先明確 1 python中一切都是物件 2 python中none是唯一的 以下對 is 與 的區別進行說明。看下面例子 ...
python is和 的區別
在 python 中會用到物件之間比較,可以用 也可以用 is 但是它們的區別是什麼呢?is 比較的是兩個例項物件是不是完全相同,它們是不是同乙個物件,占用的記憶體位址是否相同。萊布尼茨說過 世界上沒有兩片完全相同的葉子 這個is正是這樣的比較,比較是不是同一片葉子 即比較的id是否相同,這id類似...
Python is 和 的區別
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 f...