python 的基础 学习 第七天 is id 编码的补充
1,==
兩個等號比較的是數值,is比較的是內存地址。print(id())查看的內存地址。
小數據池只存在于數字與字符串中,數字 ? 是 -5^^256,是為了節省空間。
字符串1,如果含有特殊字符,不存在小數據池,單個字符串('a')*int ? int>20不存在于小數據池
其他都不存在小數據池。
is 比較的是id 地址print(a is? b)
2,數據類型byte與str字符串的操作方法一樣。
? ?? 1,編碼之間的二進制互不識別
? ?? 2,存儲和傳輸是010101。但不能是Unicode的二進制。
3,python3x中的str在內存中的編碼是unicode,python3x中的字符串不能直接存儲和傳輸。
4,
python3x 中的編碼:
??? python3x 中 str 在內存中的編碼方式是unicode。python3x 中的str不能直接存儲,和發送。
??? bytes 他的編碼方式是非unicode(utf-8,gbk,gb2012.....)。
??? 對于英文:
??????? str: 表現形式:s = 'laonanhai'
????????????? 內部編碼:unicode
??????? bytes:
????????????? 表現形式:s = b'laonanhai'
????????????? 內部編碼:非unicode.
??? 對于中文:
??????? str: 表現形式: s = '中國'
????????????? 內部編碼:unicode
??????? bytes:????????????????? 00000001
????????????? 表現形式:s1 = b'\xe4\xb8\xad\xe5\x9b\xbd'
????????????? 內部編碼:非unicode.
?5,是由 unicode編碼成utf-8的byte類型。
s = '中國' s1 = s.encode('utf-8') print(s1) #b'\xe4\xb8\xad\xe5\x9b\xbd' 由 unicode 編碼成 gbk 的byte類型s = 'alex' s2 = s.encode('gbk') print(s2)#b'alex'
由 utf-8 解碼成unicode
s = 'alex' s1 = s.encode('utf-8') s2 = s.encode('gbk') s3 = s1.decode('utf-8')#decode解碼 print(s3)由gbk 先轉化成unicode 再變成utf-8
s = 'alex' s1 = s.encode('gbk') s2 = s1.decode('gbk').encode('utf-8')#由gbk 先轉化成unicode 再變成utf-8 print(s2)#b'alex'?
轉載于:https://www.cnblogs.com/yzxing/p/8633592.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的python 的基础 学习 第七天 is id 编码的补充的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot 自动配置
- 下一篇: websocket python爬虫_p