最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中is與雙等于號“==”的區(qū)別示例詳解

 更新時間:2017年11月21日 09:14:15   作者:Jason Hu  
Python中有很多運算符,下面這篇文章主要給大家介紹了關(guān)于python中is與雙等于號“==”區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

在開始本文之前,首先要知道Python中對象包含的三個基本要素,分別是:id(身份標識)、python type()(數(shù)據(jù)類型)和value(值)。is和==都是對對象進行比較判斷作用的,但對對象比較判斷的內(nèi)容并不相同。下面來看看具體區(qū)別在哪。

發(fā)現(xiàn)問題

最近在給小伙伴寫段小代碼用于爬取一個GIS的各高層數(shù)據(jù),python中使用了”is”來代替”==”,結(jié)果下載至512的時候出了問題。

代碼如下

def get_next(x, y, z):
 z += 1
 if z is 2**x: # 應(yīng)該用if z == 2**x
 y += 1
 z = 0
 if y is 2**(x+1):
 x += 1
 y = 0
 return x, y, z

這是用來獲取下一個高層數(shù)據(jù)的URL的函數(shù),結(jié)果第二天,小伙伴告訴我說下載到x == 9, y == 0, z == 512的時候停止下載了。

探索

首先,根據(jù)上述代碼可以知道,z按照邏輯是不可能等于512的,所有開始懷疑是不是這個函數(shù)有問題,但是這么簡單的函數(shù),怎么看都不應(yīng)該有問題啊。于是開始跟代碼,發(fā)現(xiàn)

if z is 2**x

處,x == 9, y == 0, z == 512時,if后面居然返回的是False。我拿計算器算了好幾遍,確定自己不是在二次元后,開始懷疑is的問題。

結(jié)果

在StackOverflow上面找到了答案

Is there a difference between == and is in Python?

is will return True if two variables point to the same object, == if the objects referred to by the variables are equal.

>>> a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True

In your case, the second test only works because Python caches small integer objects, which is an implementation detail. For larger integers, this does not work:

>>> 1000 is 10**3
False
>>> 1000 == 10**3
True

然后自己寫了個小段子看看最大的可復(fù)用的int是多大

a = 0
b = 0
while a is b:
 a += 1
 b += 1

最后發(fā)現(xiàn)最大是256。

小結(jié):

  • ==比較操作符:用來比較兩個對象是否相等,value做為判斷因素;
  • is同一性運算符:比較判斷兩個對象是否相同,id做為判斷因素。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • python使用tcp實現(xiàn)局域網(wǎng)內(nèi)文件傳輸

    python使用tcp實現(xiàn)局域網(wǎng)內(nèi)文件傳輸

    這篇文章主要介紹了python使用tcp實現(xiàn)局域網(wǎng)內(nèi)文件傳輸,文件包括文本,圖片,視頻等,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python類裝飾器用法實例

    python類裝飾器用法實例

    這篇文章主要介紹了python類裝飾器用法,實例分析了Python類裝飾器的相關(guān)使用方法,需要的朋友可以參考下
    2015-06-06
  • Python與MongoDB輕松管理數(shù)據(jù)

    Python與MongoDB輕松管理數(shù)據(jù)

    本文將介紹如何使用Python操作MongoDB,包括安裝MongoDB、安裝Python的MongoDB驅(qū)動程序、連接到MongoDB、插入、查詢、更新和刪除數(shù)據(jù),以及示例代碼
    2023-11-11
  • python中編寫config文件并及時更新的方法

    python中編寫config文件并及時更新的方法

    在pytorch或者其他深度學(xué)習(xí)框架中,有許多超參數(shù)需要調(diào)整,包括learning_rate,training_data_path等,因此編寫一個config文件統(tǒng)一存放這些參數(shù),方便調(diào)用/查看/修改還是很有必要,這篇文章主要介紹了python中一種編寫config文件并及時更新的方法,需要的朋友可以參考下
    2023-02-02
  • 500行Python代碼打造刷臉考勤系統(tǒng)

    500行Python代碼打造刷臉考勤系統(tǒng)

    本文給大家分享通過500行Python代碼打造刷臉考勤系統(tǒng),代碼超級簡單,感興趣的朋友跟隨小編一起看看吧
    2019-06-06
  • python3 打開外部程序及關(guān)閉的示例

    python3 打開外部程序及關(guān)閉的示例

    今天小編就為大家分享一篇python3 打開外部程序及關(guān)閉的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python類繼承用法實例分析

    python類繼承用法實例分析

    這篇文章主要介紹了python類繼承用法,實例分析了Python類的定義與類繼承的實現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05
  • python和opencv構(gòu)建運動檢測器的實現(xiàn)

    python和opencv構(gòu)建運動檢測器的實現(xiàn)

    這篇文章主要介紹了python和opencv構(gòu)建運動檢測器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python安裝教程

    python安裝教程

    這篇文章主要為大家詳細介紹了python安裝教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • python進階教程之動態(tài)類型詳解

    python進階教程之動態(tài)類型詳解

    這篇文章主要介紹了python進階教程之動態(tài)類型詳解,動態(tài)類型是動態(tài)語言的特性,本文對多種動態(tài)類型應(yīng)用做了講解,需要的朋友可以參考下
    2014-08-08

最新評論

汝阳县| 吉林市| 芒康县| 东光县| 衡南县| 鄂州市| 天峨县| 泗阳县| 通许县| 阿克苏市| 桂东县| 宁阳县| 镇雄县| 肥东县| 宜宾市| 涡阳县| 灵台县| 垦利县| 德保县| 新和县| 华阴市| 伊吾县| 遂平县| 泸溪县| 五寨县| 商洛市| 始兴县| 紫阳县| 鄄城县| 河曲县| 曲周县| 彭州市| 延长县| 舟曲县| 济源市| 响水县| 五常市| 广饶县| 横峰县| 永寿县| 泗洪县|