python第六天
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第六天