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