Python中“==”和“is”的區(qū)別

  • is比較的是內存地址(可以用id()查看內存地址)
  • ==比較值

    先在shell中輸入以下代碼:
    image.png
image.png

在shell中處理含有非單詞字符的字符串的時候會臨時分配多個內存

單詞字符:正則中的\w,包括大小寫字母、數字、下劃線這三類。

可以試試123 、x!y!z 、 x y z以及其他任何組合

但是在shell里是一行一行執(zhí)行,所以同一行的話兩個字符串的內存地址是一樣的。
image.png

但是將代碼放入可執(zhí)行文件中執(zhí)行就又不同了:
將以下代碼寫入文件test.py中,執(zhí)行文件

a = 'shi yan lou'
b = 'shi yan lou'
print(a is b)

執(zhí)行結果:
image.png
  • 在shell中單行執(zhí)行時是臨時分配的內存地址,而在程序中,字符串是不可變類型,只有一個地址。

注意!??!以上只是說了字符串等不可變對象
list、dict等可變類型無論在shell里還是在代碼中id都是不一樣的。

有人可能會問tuple,tuple雖然是不可變類型,但是具有可變性。意思是雖然tuple本身不可變,但tuple中元素可以是list等可變的類型!

有意思的一點是None這個值,任何時候任何地點無論什么情況它都風雨無阻的id(None) == 10061536。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,695評論 0 5
  • 〇、前言 本文共108張圖,流量黨請慎重! 歷時1個半月,我把自己學習Python基礎知識的框架詳細梳理了一遍。 ...
    Raxxie閱讀 19,556評論 17 410
  • 543
    紅昔昔閱讀 192評論 0 1
  • 第一,“搶單”,我們在門店會看到在店鋪沒有人的時候,員工基本是窩在柜臺內的,而超級買手基本會站在門口,不管在哪個位...
    天藍槑Ln閱讀 514評論 0 0

友情鏈接更多精彩內容