Python基礎6 小資料池,編碼補充

2022-05-12 13:58:26 字數 1280 閱讀 9708

一. 小資料池

**塊:python程式是有**塊構成的,乙個**塊的文字作為python程式的執行單元.

乙個模組,乙個函式,乙個類,甚至每乙個command命令都是乙個**塊,乙個檔案也是乙個**塊.

eval()和exec()執行的時候也是乙個**塊

命令列:我們在控制台cmd中輸入的python進入的就是python的command模式,在這裡也可以寫python程式

二. 小資料池is和==的區別

1. id()

通過id()我們可以檢視到乙個變數表示的值在記憶體中的位址

2. is 和 ==

== 判斷左右兩端的值是否相等

is 判斷左右兩端的=記憶體位址值是否一致,如果返回true,那可以確定這兩個變數使用的是同乙個物件

3. 小資料池

一種資料快取機制,也被成為駐留機制

小資料池只針對:整數,字串,布林值. 其他的資料型別不存在駐留機制

優點:能夠提高一些字串,整數的處理速度,省略了建立物件的過程

缺點:在"池"中建立或者插入新的內容會花費更多的時間

對於數字: -5~256是會被加到⼩小資料池中的. 每次使⽤用都是同⼀乙個物件.

對於字串串:

1. 如果字串串的⻓長度是0或者1, 都會預設進⾏行行快取

2. 字串串⻓長度⼤大於1, 但是字串串中只包含字⺟母, 數字, 下劃線時才會快取

3. ⽤用乘法的到的字串串. ①. 乘數為1, 僅包含數字, 字⺟母, 下劃線時會被快取. 如果

包含其他字元, ⽽而⻓長度<=1 也會被駐存, ②. 乘數⼤大於1 . 僅包含數字, 字⺟母, 下劃 線這個時候會被快取. 但字串串⻓長度不能⼤大於20

4. 指定駐留留. 我們可以通過sys模組中的intern()函式來指定要駐留留的內容.

三. 編碼補充

1.python2使用的是ascii碼表,python3使用的是unicode碼表

在儲存和傳輸時不能直接用unicode,因為太浪費記憶體,所以必須對字串進行編碼,轉換成bytes型別

2.bytes的表現形式

ascii碼表的內容(英文,數字,特殊字元):原樣輸出,表現形式和字串沒區別

非ascii碼表的內容(中文): b'\xe6\x88\x91\xe4 這是兩個漢字的utf-8的bytes表現形式

gbk或utf-8 --> unicode 用decode()解碼

unicode --> gbk或utf-8 用encode()編碼

gbk和utf-8不能相互直接轉換,需要unicode來充當中間媒介

小資料池和編碼

1.小資料池.目的 快取我們的字串,整數,布林值.在使用的時候不需要建立過多的物件 快取 int str bool int 範圍 5 256 str 1.長度小於等於1,直接快取 2.長度大於1.字串中如果只有數字,字母,下劃線.就會快取 3.乘以1.同上,乘以大於1的數,僅包含數字,字母下劃線.最...

小資料池 編碼補充

1 is id id查詢記憶體位址 is判斷的是記憶體位址 2 小資料池 python int str 有小資料池,為了節省記憶體,其他的資料型別沒有小資料池 int範圍 5到256 str如果全部由字母組成的字串,都是指向乙個記憶體位址 如果是str 單個字母 與數字相乘,則數字是20以內 包含2...

Python的小資料池和編碼解碼

塊 乙個模組,乙個函式,乙個類,甚至每乙個command命令都是乙個 塊.乙個檔案也是乙個 塊.而不需要建立乙個新的資料.這樣會節省更多的記憶體區域.在cmd命令列執行python時,每一條 就是乙個 塊 在pycharm中執行檔案時,每乙個.py檔案就是乙個 塊.is 判斷的是兩者的記憶體位址是否...