小資料池 編碼補充

2022-05-08 18:03:12 字數 1107 閱讀 1596

1、== is id

id查詢記憶體位址

is判斷的是記憶體位址

2、小資料池

python int str 有小資料池,為了節省記憶體,其他的資料型別沒有小資料池

int範圍-5到256

str如果全部由字母組成的字串,都是指向乙個記憶體位址

如果是str(單個字母)與數字相乘,則數字是20以內(包含20)是同乙個記憶體位址

其它資料型別,則沒有小資料池概念

3、編碼高階

gbk用英文8位,中文16位

①不同編碼之間是不能互相識別對方的二進位制,會報錯,或者產生亂碼。

②在你的字串(檔案)儲存、傳輸時,必須使用非unicode的二進位制。

py3中:

字串:編碼方式(在記憶體中的執行方式):預設都是unicode

byte型別。

bytes對於非中文:表現形式為:b'alex'  內部編碼:utf -8,gbk,gb2312....(非unicod)

bytes對於中文:表現形式:十六進製制b'xe3\xf2\x36\xe3\xf2\x36\'  內部編碼:utf -8,gbk,gb2312....(非unicod)

str型別

str對於非中文:表現形式為:'alex'  內部編碼:unicode

str對於中文:表現形式:'中國'  內部編碼:unicode

英文:

s = '

alex

'b = s.encode('

utf-8')

print

(s,type(s))

print(b,type(b))

中文:

s = '

我愛中國

'b = s.encode('

utf-8')

print

(s,type(s))

print(b,type(b))

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

一.小資料池 塊 python程式是有 塊構成的,乙個 塊的文字作為python程式的執行單元.乙個模組,乙個函式,乙個類,甚至每乙個command命令都是乙個 塊,乙個檔案也是乙個 塊.eval 和exec 執行的時候也是乙個 塊 命令列 我們在控制台cmd中輸入的python進入的就是pytho...

小資料池和編碼

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 進行快取,這樣不需...