1 is 和 == 的區別
s = "alex
"print(id(s)) #
2500194320432
lst = [1,2, 4]
print(id(lst)) #
2500343404424
lst = [1, 2, 4] #
即使定義兩個一樣結果的列表,作業系統都會在記憶體中開闢2塊記憶體位址
print(id(lst)) #
2500343504648
tup = (1, 2)
print(id(tup)) #
2500343383880
tup1 = (1, 2) #
元組亦是.
print(id(tup1)) #
2500343382728
3> is 和id( )的聯絡
is比較的是id()計算出來的結果,由於,由於id()幫我們查的是資料(內容)的記憶體位址,那麼is就是比較資料(內容)的記憶體位址
最終,我們可以通過is來比較兩個資料(內容)是否為同乙個物件.
==是比較左右兩端的資料(內容)是否一樣
is是比較的兩個資料(內容)記憶體位址是否一樣
2,編碼的補充:
>英文b"alex"英文的表現形式和字串沒有設麼區別
>中文 b'\xe4\xb8\xad'這時乙個漢字uyf-8的bytes表現形式
encode(內容),編碼,獲取到的是編碼之後的結果."bytes".........................格式是.encode("utf-8"或者,"gbk")
decode(內容),解碼,把bytes變成我們熟悉的字串.................................格式是.decode("utf-8"或者,"gbk")
#utf-8的編碼以及解碼
s = "中"
#編碼:
print(s.encode("
utf-8
")) #
b'\xe4\xb8\xad'
#解碼:
print(b'
\xe4\xb8\xad
'.decode("
utf-8"))
#gbk的編碼以及解碼
s = "中"
#編碼:
print(s.encode("
gbk")) #
b'\xd6\xd0'
#解碼:
print(b'
\xd6\xd0
'.decode("
gbk")) #
中
小結:
小資料池和編碼
1.小資料池.目的 快取我們的字串,整數,布林值.在使用的時候不需要建立過多的物件 快取 int str bool int 範圍 5 256 str 1.長度小於等於1,直接快取 2.長度大於1.字串中如果只有數字,字母,下劃線.就會快取 3.乘以1.同上,乘以大於1的數,僅包含數字,字母下劃線.最...
小資料池和編碼問題
1.小資料池 為了快 避免重複建立 1.塊 每次執行的乙個單元 函式 類 command互動命令 eval 2.is 和 記憶體位址 id 變數名 記憶體的開闢是由直譯器決定的 is比較的是記憶體位址 判斷值是否相等 我們一直在用 在python裡面,缺省會把數字 字串 bool 進行快取,這樣不需...
小資料池,編碼和解碼
1.小資料池 常量池 id 檢視常量的記憶體位址 is 判斷記憶體位址是否一致 判斷值是否相等 記憶體位址相等值一定相等,值相等記憶體位址不一定相等 小資料池只針對 整數 字串 bool,其他資料值沒有駐留機制 優點 能夠提 些字串,整數的處理速度.省略的建立物件的過程.缺點 在 池 中建立或者插入...