日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python 中 is 与 == 的区别

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 中 is 与 == 的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 Python 中,比較兩個對象是否相等,可以用 “is” 和 “==” ,?is 與 == 的區別是什么呢,首先先清楚is 與 == 的概念

is 的概念:

比較的是兩個對象的id值是否相等,也就是比較倆對象是否為同一個實例對象,是否指向同一個內存地址。

== 的概念:?

比較的是兩個對象的內容是否相等

為了更好的理解下面舉個例子

小明和小王 2個人都上一年級,2人剛上學的時候領取的語文課本,無論外表,還是里面的章節都是一模一樣,但是2人的書是不同的對象

這個時候我們可以使用is 比較, 如果使用== 比較的話,就是相同了

下面在寫一個demo

a = [1, 2, 3]
b = [1, 2, 3]
print(a is b)  # 打印結果為False
print(a == b)  # 打印結果為True

這里a 就好比小明的語文課本, b 好比小王的語文課本 2個是不同的對象的,所以is 的時候返回的為False

is 比較的是內存地址,我們可以使用id()函數來打印下a 和 b 的內存地址

a = [1, 2, 3]
b = [1, 2, 3]
print(id(a))  # id 值為:1831201289280
print(id(b))  # id 值為:1831201289600
print(a is b)  # 打印結果為False
print(a == b)  # 打印結果為True

---------------------------------下面在補充一點-------------------------------

python 為了性能考慮,對于值相同的不可變對象,都不會重新創建新的地址來存儲對象,而對于可變對象,則會重新開辟空間

所以當使用is 比較 2個int 類型或者float 類型返回結果為True 的時候不要在質疑我上面下的知識點了,

例如 在使用pycharm 工具 測試下面2個

a = 3.14
b = 3.14
print(a is b) ?# 打印結果為True

或者

a = 500000
b = 500000
print(a is b) ?# 打印結果為True

原因就是:python 為了性能考慮,對于值相同的不可變對象,都不會重新創建新的地址來存儲對象,而對于可變對象,則會重新開辟空間

具體的我在is 與not is 里面寫了,地址鏈接

?

總結

以上是生活随笔為你收集整理的python 中 is 与 == 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。