Python的小資料池和編碼解碼

2022-06-12 04:48:09 字數 1096 閱讀 8526

**塊:  乙個模組, 乙個函式, 乙個類, 甚至每乙個command命令都是乙個**塊. 乙個檔案也是乙個**塊.而不需要建立乙個新的資料. 這樣會節省更多的記憶體區域.

在cmd命令列執行python時,每一條**就是乙個**塊; 

在pycharm中執行檔案時,每乙個.py檔案就是乙個**塊.

is:  判斷的是兩者的記憶體位址是否一致.   print(id(變數))  ----> 查記憶體位址

==:  判斷兩者值是否一致.

小資料池:  一種快取機制, 可以快速地建立字串物件, 以減少記憶體的浪費 (只針對整數, 字串, bool). 

在python中對-5到256之間的整數會被駐留在記憶體中, 並將一定規則的字串快取. 在使用時, 記憶體中只會建立乙個給資料的物件, 儲存在小資料池中. 當使用的時候直接從小資料池中獲取物件的記憶體引用, 而不需要建立乙個新的資料, 這樣就會節省更多的記憶體區域.

對於整數:  -5 到 256

對於字串: 只針對含有字母,數字,下劃線式並且字元長度不大於20的字串會快取(漢字不會快取).

ascii(含數字,字母和特殊字元) :  8位  1位元組  

gbk(國標碼,含有6w多個漢字):    16位  2位元組

unicode(萬國碼):         32位  4位元組  (太長不適合傳輸和儲存)

utf-8(可變長度的unicode):       24位  英文1位元組, 歐洲文字2位元組, 中文3位元組  (適合傳輸和儲存)

在python 3的記憶體中,用的是unicode, 在python 2中用的是ascii.

程式在執行的時候, 使用的是unicode編碼方式, 因為unicode是萬國碼, 什麼內容都可以進行顯示, 在資料傳輸和儲存時候, 則以 utf-8 的形式進行儲存, 省記憶體.

encode()和decode()

1 bs = b'

\xc2\xed\xbb\xaf\xcc\xda'#

gbk編碼

2 b = bs.decode("

gbk"

)3 bss = b.encode("

utf-8")

4print(bss)

編碼解碼

小資料池和編碼

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,其他資料值沒有駐留機制 優點 能夠提 些字串,整數的處理速度.省略的建立物件的過程.缺點 在 池 中建立或者插入...