python中「is」和「 」的區別

2022-01-11 10:16:14 字數 941 閱讀 5248

最近在刷題時,有一道題需要判斷下2個字串是否相等

開始的時候,是用"is"來進行判斷的,例如a is b

但是實際執行時,發現並未得到預期的判斷結果(看來裡面發生了什麼我不知道的事情~~)

網上衝浪一番,很輕鬆就找到了答案

原文傳送門:

python中,萬物皆物件,每個物件包含3個屬性,id,type,value

id就是物件位址,可以通過內建函式id()檢視物件引用的位址;

type就是物件型別,可以通過內建函式type()檢視物件的型別;

value就是物件的值;

is比較的是id是否一樣,==比較的是是否一樣

python為每個物件分配記憶體的機制

1、python在為數字分配記憶體時,按照數字的內容來分配記憶體,即a = 5;b = 5時,python只對數字5分配一塊記憶體空間,而不是對變數a和b各分配一塊記憶體;(在python互動式介面有記憶體池快取機制,只適用於-5~256,在python指令碼程式設計中則沒有這個限制)

2、在計算機中,每一塊記憶體都有乙個唯一的位址以供變數去訪問記憶體中的內容,這個位址會被賦給變數的id屬性,所以a = 5;b = 5時a和b的id是一樣的,都是5所在記憶體的位址。

3、在計算機中,當位址指定後,這塊位址對應的記憶體時唯一確定的。

is就是用來判斷兩個變數的id是否相等,當兩個變數的id相等時,說明這兩個變數指向的位址是相同的,那麼這兩個變數的一切屬性都相同。

所以,如果想判斷2個字串的值是否相等時,使用== 肯定不會出錯的

Python中is和 的區別

python中的物件包含三要素 id type value。is判斷的是a物件是否就是b物件,是通過id來判斷的。也就是記憶體位址。其實本質就是判斷id a id b 當然也可以使用 判斷。但是必須是id a id b 而不是a b a 1,2,3 b 1,2,3 a is b false id a...

Python中「is」和「 」的區別

python有兩個用於相等比較的運算子,is 和 等於 在這篇文章中,我將帶你們了解python中 is 和 的區別,並通過幾個簡單地例子說明應該在什麼時候使用它們,我們先來看乙個情景 當我還是乙個孩子的時候,我們的鄰居家有兩隻雙胞胎貓。這兩隻貓看起來看起來完全一樣 同樣的木炭毛,同樣敏銳的綠眼睛。...

python中 is 和 的區別

python中的物件包含三要素 id type value 其中 id用來唯一標識乙個物件,type標識物件的型別,value是物件的值 is判斷的是a物件是否就是b物件,是通過id來判斷的 判斷的是a物件的值是否和b物件的值相等,是通過value來判斷的 最終取決於物件的 eq 方法,本質上兩個變...