pyhon學習第六天 代碼塊,小數據池(緩存機制,駐留機制),is == id =,字符編碼
1.代碼塊
能夠實現某項功能的:模塊,函數,類,文件
##在python的交互模式下,一行代碼就是一個代碼塊分別儲存在不同文件中
2.
id is ==和=
=是賦值
==比較兩邊數據內容是否相等
is 比較內存地址是否一致(內存裏的id都是唯一的)
id() 查看數據的id地址
3.小數據池(緩存機制,駐留機制):
小數據池是python對內存做的一個優化
優化內容:python將-5到256的整數.以及一定規律的字符串提前在內存找那個創建了固定的儲存空間
適用小數據池的數據類型:*****
int str bool
b=1231 a=321 c=a is b print(c,id(c)) d=b is a print(d,id(d)) bool型id固定
4.
相同代碼塊:
python在同一個代碼塊中創建新變量時(初始化對象命令時),他會將變量與值的對應關系放到一個字典當中,
如果之後再代碼塊中再初始化對象命令,python會在字典中尋找,如果存在相同的值,會映射到相同的id.
不同代碼塊:
python在不同的代碼塊中:初始化對象命令時,會在小數據池中尋找是否有相同的值
5.
網絡傳輸和硬盤儲存數據,一定不能以Unicode編碼方式傳輸
對於在python3版本中:
內存的默認編碼方式是Unicode
str 與 bytes 類型:
str的所有操作bytes都有
str 與 bytes 類型之間的區別:
在英文中:
str: ‘alex‘
bytes: b‘alex‘
在中文中:
str: ‘太白‘
bytes: 用encode(‘utf-8‘)編碼
用decode(‘utf-8‘)解碼
a=‘太白‘ b=a.encode(‘utf-8‘) print(b) #b‘\xe5\xa4\xaa\xe7\x99\xbd‘ c=b.decode(‘utf-8‘) print(c) #太白
6.python整體的小數據池和代碼塊中的小數據池:都是形成一個字典,用於儲存int str bool類型數據
b={1:[3]} a={1:[3]} print(id(a),id(b)) #2767810096728 2767810096656 a=1000 b=1000 print(id(a),id(b)) #1667652283280 1667652283280
7.gbk編碼和utf-8編碼之間的轉換:
當是英文字母,數字,特殊字符時,可支架轉換
其他數據通過unicode中轉
pyhon學習第六天 代碼塊,小數據池(緩存機制,駐留機制),is == id =,字符編碼