python is 與 的區別

2021-09-13 00:25:04 字數 1338 閱讀 1490

在了解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...