首頁 > 後端開發 > Python教學 > Python 中的「==」和「is」有什麼區別?

Python 中的「==」和「is」有什麼區別?

Barbara Streisand
發布: 2024-12-24 22:41:11
原創
592 人瀏覽過

What's the Difference Between `==` and `is` in Python?

理解Python中「==」和「is」的區別

在Python中比較值時,有兩種常見的情況運算符:「==」和「是」。通常,這些運算子似乎執行相同的相等性檢查。然而,兩者在評估內容方面存在細微差別。

「==」和「is」運算子

  • "==": 測試值是否相等,這表示它會評估兩個變數是否引用包含相同內容的物件。 value.
  • "is": 測試物件身分。這檢查兩個變數是否引用記憶體中的相同對象,無論它們的值如何。

值相等與物件同一性

值相等:

  • 當使用「== 」時,Python 會比較變數所引用的物件的值。
  • 如果值相等,則結果為True ,無論物件是否為不同的實例

範例:

a = 10
b = 10

if a == b:
    print("Yay!")  # Will print "Yay!" as 10 == 10
登入後複製

物件識別:

  • 物件識別>
  • 當使用「is」時,Python會比較物件變數的識別符。

如果變數引用記憶體中的同一個對象,則結果為確實如此,即使它們的值不同。

a = [1, 2, 3]
b = a

if a is b:
    print("Yay!")  # Will print "Yay!" as a and b point to the same list
登入後複製

示例:

    規則的例外
整數:
a = 100
b = 100

if a is b:
    print("Yay!")  # Will print "Yay!" due to integer caching
登入後複製
Python 緩存小整數物件(最多256 個)以提高效能原因。這意味著即使對於此範圍內的不同整數變量,“is”也可能返回True:
字串:
a = "a"
b = "a"

if a is b:
    print("Yay!")  # Will print "Yay!" as string literals are cached

b = "aa"

if a is b:
    print("Nay!")  # Will not print as b is a different object
登入後複製
類似地,Python 緩存常見字串文字。但是,請注意,這不適用於從變數建立的字串:

總之,「==」測試值相等性,而「is」測試物件標識。理解這種區別對於編寫正確且高效的 Python 程式碼至關重要。

以上是Python 中的「==」和「is」有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板