python 中的運算比較符 is 與 ==

2021-02-16 文科生的浪漫編程

   

     我們在日常的工作過程中,經常會使用到比較符 is 或者 == 寫表達式對兩個對象進行判斷操作,那麼究竟什麼情況下用 is 什麼情況下用 == 呢,所以今天我們就來簡單認識一下這兩個比較符吧。

比較兩個對象的值是否相等 ( == )

當我們需要對兩個對象的值是否相等進行判斷的時候,我們用到的運算符就是 == 

a = 100b = 100c = 200a == bOut[11]: Truec == aOut[12]: False

python的緩存機制

在認識 is 運算符之前我們先來簡單了解一下python的緩存機制

整數對象

python中,對於(-5 ... 256)之間的整數,系統已經提前分配好了內存地址,所以在使用到這期間的整數對象時,會直接讀取內存池中對應的內存地址,不會創建新的對象。而對於其他不在這期間的整數對象,python會在內存池中為其分配一塊小於256k大小的內存,每次的賦值引用都是創建不同的對象,生成不同的內存地址。

a = 256 b = 256id(a) == id(b)Out[15]: Truea = 257b = 257id(a) == id(b)Out[18]: False

字符串對象

單個的ASCII字符或者不間斷的單個ASCII字符串的對象創建,python會創建一個內存來儲存這個字符串,如果字符串已存在內存池裡面,就不會再去創建新的對象,再次賦值別的變量也只是調用的是同一個對象,但如果是間斷的ASCII字符串對象創建,那麼就會生成不同的對象內存,不會發生已存在內存池就不創建新的內存地址。

a ='abc'b = 'abc'id(a) == id(b)Out[27]: Truea = 'a bc'b = 'a bc'id(a) == id(b)Out[30]: False

比較兩者是否為同一個對象 ( is )

當我們需要比較兩個對象是否為同一個對象的時候,用的比較符就是 is

 is 相當於 id(obj) == id(obj)

a = 1000b = 1000a is bOut[37]: Falseid(a) == id(b)Out[38]: Falsea = 1000b = aa is bOut[41]: Trueid(a) == id(b)Out[42]: True

尼採曾經說過:「每一個不曾起舞的日子,都是對生命的辜負。」

相關焦點

  • Python集合中的四種運算:交集、併集、差集和對稱差集運算
    在春天繼續學習Python集合,應用在Python當中是作為一種序列存在的,同時在Python中,也可以進行集合的一般運算,比如交集運算、併集運算和差集運算。交集,就是兩個集合相交的部分,運算符為「&」;併集,就是合併在一起的集合,運算符為「|」;差集,就是兩個集合之差,運算符為「-」;最後還有一個對稱差集
  • 慢步學習二級python,字符串類型的操作:操作符,函數和方法
    繼續學習二級python考試的大綱內容:4.字符串類型的操作:字符串操作符,處理函數和處理方法學習字符串類型數據的操作是學習python的基礎。字符串操作符字符串常見操作符有2個+ *在應用中的意義是 連接 和 重複如上圖,第一個指令,「愛」+「你」,
  • Python3的字符串類型(瘋狂Python)
    字符串可以用+運算符連接在一起,用*運算符重複。Python中的字符串有兩種索引方式,從左往右以0開始,從右往左以-1開始。Python中的字符串不能改變。4.2.1 repr和字符串Python不允許直接拼接數值和字符串,必須先將數值轉換成字符串。
  • Python入門講解
    如何運行Python通常來講有二種方式,一種方式是交互式的,就像Shell命令行提示符那樣,交互式的,輸入,就有輸出;在終端輸入python命令,就進入了Python的命令提示符中:>>>輸入Python語句,解釋器就會執行,並輸出結果,如:[python] view plain copy print
  • Python3.8的幾大新功能,你都知道嗎?
    這樣就出現了一個問題,假如一個團隊中很多人進行合作開發,函數的定義形式和調用模式是很難規範和統一的。因此Python3.8就引入了一個「Positional-Only Argument」的概念和分隔符「/」,在分隔符「/」左側的參數,只允許使用位置參數的形式進行傳遞。
  • Python2 已終結,入手Python 3,你需要這30個技巧
    在這條命令裡還可以使用表達式(expression),所以也可以做一些數學運算:IPython shell 中你也可以用 Out[n] 來獲得 In[n] 的輸出。比如說,在上面的例子中,Out[1] 就會返回 9。你可以快速創建一個網頁伺服器,並將當前的路徑作為內容:python3 -m http.server如果你想跟你的同事分享一些東西,或者測試一些簡單的 HTML 網站,那這條命令就很有用了。
  • 無編程基礎,無計算機基礎都能看懂的零基礎入門Python
    當python程序運行時,編譯的結果則是保存在位於內存中的PyCodeObject中,當Python程序運行結束時,Python解釋器則將PyCodeObject寫回到pyc文件中。當python程序第二次運行時,首先程序會在硬碟中尋找pyc文件,如果找到,則直接載入,否則就重複上面的過程。
  • Python合集之Python集合(二)
    1.1 向集合中添加元素向集合中添加元素可以使用add()方法實現,語法格式如下:setname.add(element)參數說明:setname:表示要添加元素的集合element:表示要添加元素內容,只能使用字符串、數字、布爾類型的true或者false及元組等不可變對象,不能使用列表,字典等可變對象。
  • Python 格式化字符串的最佳姿勢
    第一種就是上古時代的方法,Python2.6 以前的獨霸天下的 "%"操作符:在我當初剛學 Python 的時候,我用了一次就放棄了,因為我想,如果像下面這樣:它還可以直接調用函數:https://docs.python.org/3/reference/lexical_analysis.html#f-strings今天的分享就到這裡,歡迎大家留意討論~作者:Rocky0429 來源:Python空間
  • Python和C/C++交互的幾種方法總結
    但是很多時候,我們既想使用python的簡介優美,又不想損失太多的性能,這個時候有沒有辦法將python與C/C++結合到一起呢?這樣在性能與速度要求不高的地方,可以用pyhton寫,而關鍵的運算部分用C/C++寫,這樣就太好了。python在做科學計算或者數據分析時,這是一個非常普遍的需求。要想實現這個功能,python為我們提供了不止一種解決辦法。下面我就逐一給大家介紹。
  • Python輸出數據print,獲取輸入數據input,基礎入門
    python的輸入和輸出一、print輸出print 默認輸出是換行的,如果要實現不換行需要在變量末尾加上 end=""如:print執行完成後默認換行print分隔符sep如:print分隔符sep應用場景:輸出消費金額
  • python爬蟲 - 字符串
    python字符串Python中的字符串可以使用單引號、雙引號和三引號(三個單引號或三個雙引號,可以換行的)括起來,使用反斜槓 \ 轉義特殊字符Python3源碼文件默認以UTF-8編碼,所有字符串都是unicode字符串支持字符串拼接、截取等多種運算
  • Perl還是Python或者R
    這樣perl就從雜亂無章的數據倉庫中篩選出指定內容,並生成結構化數據結構的「實用報表」。生物大數據大多以文本模式存儲,而且同樣屬於非結構化數據,所以,perl自然被大量用在生物數據處理中,有很多生物軟體就是用perl語言寫的,例如rnamer,nucmer等,很多生物軟體安裝包中提供一些附加小工具也是用perl寫的。
  • 【python】Array Programming with Numpy
    在正文中,作者主要圍繞摘要中的內容進行展開,主要介紹了Numpy的歷史,Numpy是什麼,現有的python科學生態,數組的激增以及互用性以及最後的討論。在Numpy的歷史中,作者主要講述了在Numpy出現之前便已經存在的兩個第三方庫的歷史以及主要功能,優劣勢,再講述了Numpy從出現到現今的發展程度,執行方式以及發展方式。
  • 被「嫌棄」的分號的一生:不要在Python中使用無用分號了
    分號僅在Python中的非典型情況下使用。筆者準備了一篇小指南,解釋為什麼不應該在Python中使用分號,並列出了少數特殊情況。語句終止符在Python中,一條語句結束於一行的結尾(方括號,引號或括號除外)。例如:c = 10a = 5print('No semicolons in Python')語句分隔符Python中的分號表示分隔,而不是終止。
  • 三種基本邏輯運算比較
    2.邏輯運算:在邏輯代數中,有與、或、非三種基本邏輯運算。表示邏輯運算的方法有多種,如語句描述、邏輯代數式、真值表、卡諾圖等。  3.邏輯函數:邏輯函數是由邏輯變量、常量通過運算符連接起來的代數式。同樣,邏輯函數也可以用表格和圖形的形式表示。
  • 如何在Mac上安裝更新的Python 3.6.x
    一、如何在Mac OS中安裝更新的Python 3也許最簡單的安裝Python 3的方法是使用python.org中的Python包安裝程序。1、轉到Python.org下載頁面並下載最新的Python安裝程序包;2、運行Python安裝程序包並將Python 3安裝到Mac上。
  • python字典操作大全,學習python第7天
    python字典python字典概念:python字典可以用來存儲任意類型對象,python字典都是由一個鍵和一個值組成的「鍵值對」,兩者之間用冒號隔開,結構如:sco = {'name':'小明','age': 11},需要注意的是python字典中的值不允許重複。
  • Python中的for循環
    # 循環允許我們重複執行一個代碼或代碼塊 # python中的循環 # for循環 # while循環 # for循環是一種迭代循環機制,而while循環是條件循環,迭代即重複相同的邏輯操作
  • 學習Python正則表達式
    如果它在文本中重複,它將返回兩次電話號碼。『有時我不知道具體的號碼,需要從評論中找到客戶號碼。’result = re.findall(r』\d』, text)這將返回所有數字,但每個元素只有一個數字:['1', '0', '0', '1', '1', '1', '1', '2', '3', '4', '5', '6', '7']r-python原始字符串這裡,r表示python