之前發過一遍不知道是不是給誰刪了python小白一枚問一個我比較在意的問題。我在python3.8.2里查看字串代碼是這樣子的結果
>>> id('cpccp')
4300388336
>>> id('oee8ed.')
4300388336
但是在3.7里不是這樣了
id('cpccp')
4368612352
id('oee8ed')
4370164792
為什么在3.8里面不同的字串地址一樣,而在3.7里面地址會不一樣,請問有大神能夠幫忙解決嗎,好像到處也沒人問這個問題的,我就來這里看看。
但是好像也有一樣的點,如下>>> a='apple'
>>> b='basket'
>>> a+b is 'applebasket'#不管是a+b還是a+'basket'都是false
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
False
>>> id(a+b)
4300389360
>>> id('apple'+b)#輸出地址都一樣
4300389360
>>> id('apple'+'basket')
4300389360
=================================================
a='apple'#python3.7
b='basket'
a+b is 'applebasket'
False
id(a+b)
4369049264#和下面的地址不一樣
id(a+'basket')
4366530480
如上,如能解決萬分感謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/218749.html
