91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中運算符+=表示什么

發布時間:2020-11-06 09:45:56 來源:億速云 閱讀:238 作者:小新 欄目:編程語言

這篇文章主要介紹Python中運算符+=表示什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

前言:

今天在運行之前寫的一個Python腳本時,發生了一個奇怪的現象(我怎么老遇到奇怪的現象~~)。當時的代碼大概長這樣:

a = [1, 2, 3]
b = [4, 5, 6]
# ...一大段邏輯
c = a
c += b
# ...一大段邏輯
# 在這里,a變成了[1, 2, 3, 4, 5, 6]

首先,上面的代碼一個函數過于長了,實在不像話

當時的情景是這樣的,程序并沒有想我預期中一樣運行。我找了半天,沒有找到對a變量的修改或賦值操作。

最終,發現了藏在中間的c變量,因為是列表對象的引用賦值,所以直接修改了a變量。我將兩個變量的地址打印出來,確實是這樣的。

Python中運算符+=表示什么

Python中運算符+=表示什么

本來,查到這里基本上破案了。也應該沒有后續了

但我上網查了一下,有人說用 =+就不會出現這種情況,我輕蔑的笑了,有什么區別么?不信邪的我試了一下。

Python中運算符+=表示什么

Python中運算符+=表示什么

這是什么原因呢?

深究:

根據我的推測,必然是+=操作改變的是原對象,=+操作返回了新的對象。嘗試一下:

Python中運算符+=表示什么

Python中運算符+=表示什么

Python中運算符+=表示什么

Python中運算符+=表示什么

由此即可得知。

解惑:

那為什么Python會在 +=操作時,直接修改原對象。而=+操作卻要返回新的對象呢?

簡單推測一下,可能Python的作者認為,+=操作是要將后邊的值加到自身上。而+則是兩個值的運算操作。根據表達是也可以看出:

a += b # 這里只涉及兩個變量,將b的內容直接加到a上

c = a + b # 這里涉及到了三個變量,將后兩者內容相加后賦值給新的變量

最后,既然+=和=+的實現不同,那么同理列表的-=和=-、*=和=*、/=和=/的實現也必然不同。然而并非如此,list沒有實現減法和除法的操作。但乘法確實也是這樣。

以上是Python中運算符+=表示什么的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

错那县| 惠州市| 广宁县| 博乐市| 新昌县| 玛纳斯县| 赫章县| 张家界市| 柳河县| 元朗区| 潮安县| 沧源| 潜山县| 贵南县| 榆树市| 当雄县| 灵宝市| 汕尾市| 莱西市| 景洪市| 三原县| 江陵县| 孟州市| 惠安县| 霍山县| 盱眙县| 余姚市| 永清县| 深水埗区| 盐津县| 渝北区| 泰宁县| 红安县| 福安市| 疏勒县| 泸溪县| 政和县| 屯门区| 樟树市| 札达县| 文水县|