標籤:文字資訊 第六天 不一致 bytes 英文 小數 資料 文字 字串
1. is 和 == 區別
id()函數
小資料池(常量量池): 把我們使?用過的值儲存在?小資料池中.供其他的變數量使用.
小資料池給數字和字串使用, 其他資料類型不存在.
對於數字: -5~256是會被加到?小資料池中的. 每次使用都是同一個對象.
對於字串:
1. 如果是純文字資訊和底線. 那麼這個對象會被添加到?資料池
2. 如果是帶有特殊字元的. 那麼不會被添加到小資料池. 每次都是新的
3. 如果是單一字母*n的情況. ‘a‘*20, 在20個單位內是可以的. 超過20個單位就不會添加 到?小資料池中
s = ‘alex‘ print(id(s)) # 4326667072
s = "alex" print(id(s)) # 4326667072
s1 = "@1 2 "
s2 = "@1 2 "
print(id(s1))
print(id(s2))
# 結果一致, 但是在終端中是不一致的. 所以在python中,命令?行行代碼和py檔案中的代碼啟動並執行效果可能是不一樣的
總結:
== 判斷兩邊的值
is 判斷記憶體位址
回顧編碼:
1. ASCII: 英文, 特殊字元, 數字, 8bit, 1byte
2. GBK: 中文 16bit, 2byte. 相容ASCII
3. unicode: 萬國碼, 32bit 4byte. 相容ASCII
4. UTF-8: 長度可變的unicode. 英文:8bit, 歐洲:16bit, 中文:24bit 3byte
python2 只能用ASCII
python3 有unicode, 預設的編碼就是unicode
記憶體裡用的是unicode. 硬碟和網路傳輸用的是utf-8或者GBK
2. encode() 編碼. 擷取到的是編碼之後的結果. bytes
3. decode() 解碼. 把bytes編程我們熟悉的字串
python第六天