Python中is與雙等於號「 」的區別

2021-09-10 04:42:42 字數 1479 閱讀 2052

python有兩個用於相等比較的運算子,「is」和「==」(等於)。在這篇文章中,it培訓網將帶你們了解python中「is」和「==」的區別,並通過幾個簡單地例子說明應該在什麼時候使用它們,我們先來看乙個情景:

當我還是乙個孩子的時候,我們的鄰居家有兩隻雙胞胎貓。

這兩隻貓看起來看起來完全一樣 - 同樣的木炭毛,同樣敏銳的綠眼睛。撇開一些個性怪癖,單從它們的外表根本無法區分它們。但他們確確實實是兩隻不同的貓,兩個不同的生物,儘管它們看起來完全一樣。

就如相等和相同在意思上是有差異的,理解這種差異對理解python中的操作符「is」和「==」是很重要的。

「==」更側重於檢測相等:如果這些貓是python物件,我們用「==」比較它們,我們會得到「兩隻貓是相等的」。

「is」側重於比較相同:如果我們用「is」比較它們,我們會得到「這是兩隻不同的貓」。

在我把所有的東西都用貓作為模擬之前,讓我們來看看一些真正的python**。

首先,我們將建立乙個新的列表物件並將其命名為a,然後定義另乙個變數b指向同一列表的物件:

shape \* mergeformat

我們來看看這兩個變數,我們可以看到它們指向相同的列表。

shape \* mergeformat

因為兩個列表物件看起來相同,所以當我們使用「==」運算子比較它們的相等性時,我們會得到預期的結果:

shape \* mergeformat

然而,這並沒有告訴我們a和b是否真的指向同乙個物件。當然,我們知道它們是指向同乙個物件的,因為我們之前給它們分配了相同的物件,但是假設我們不知道我們會發現什麼?

那麼將兩個變數用「is」操作符進行比較,這會證明兩個變數是指向同乙個列表物件的:

shape \* mergeformat

我們來看看當我們建立列表物件的相同副本時會發生什麼,我們可以通過在現有列表上呼叫list()來建立乙個名為c的副本:

shape \* mergeformat

您將再次看到我們剛剛建立的新列表看起來與a和b指向的list物件相同:

shape \* mergeformat

這就是有趣的地方,如果我們使用「==」運算子來比較列表副本c和初始化列表a,您希望看到什麼答案?

shape \* mergeformat

好吧,希望這是您所期待的,這個結果告訴我們c和a有相同的內容,它們被python認為是相等的,但它們是否指向同乙個物件?我們來看看is操作符:

shape \* mergeformat

以上我們得到了不同的結果。python告訴我們xa.cnitedu.cn,c和a指向兩個不同的物件,儘管它們的內容是相同的。

所以,回顧一下,我們區分「is」和「==」用以下兩個簡短的定義:

如果兩個變數指向同乙個(相同的)物件,則「is」表示式為true。

如果變數所引用的物件是相等的(有相同的內容),則「==」表示式的值為true。

只要記住這個,當您需要在python中使用is和==的時候,就會想到一對孿生的貓(狗也一樣),您就會知道該用哪個了。

python中等於號 python中的 號

from 傳遞實參和定義形參 所謂實參就是呼叫函式時傳入的引數,形參則是定義函式是定義的引數 的時候,你還可以使用兩個特殊的語法 呼叫函式時使用 test args 的作用其實就是把序列 args 中的每個元素,當作位置引數傳進去。比如上面這個 如果 args 等於 1,2,3 那麼這個 就等價於 ...

三個等於號 與兩個等於號

1.三個等號我們稱為等同符,當等號兩邊的值為相同型別的時候,直接比較等號兩邊的值,值相同則返回true,若等號兩邊的值型別不同時直接返回false。例 100 100 返回false abc abc 返回false abc abc 返回true nan nan 返回false false false...

神奇的等於號

在domino圈,有乙個眾所周知的秘密 越是新人,膽子越大。受了系統的打擊報復,還要以更有力的核打擊報復回去。是你讓我沒有信心掌握你的執行規則,那就玉石俱焚!於是,刪檔案的 屢屢發生。雖然冤冤相報何時了,但就在這樣的過程中有了一些神奇的發現。比如九通就愛刪檔案,無論好壞,刪了再說 萬一刪好了呢?總比...