【Python】【 Python中的字節與字符串】

默認編碼:

字符不等於字節:字符是人類能夠識別的符號,而這些符號要保存到計算的存儲中就需要用計算機能夠識別的字節(二進制編碼)來表示,其中的文本文件都是以某種特定編碼的字節形式存放的:

  1. Python2默認編碼爲’ascii’,而Python3默認編碼爲’utf-8’
  2. (utf-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼,用1到6個字節編碼Unicode字符.)
  3. 爲了兼容Python2和Python3,建議在代碼頭部聲明字符編碼:-- coding:utf-8 --

查看Python3的默認編碼,命令如下:

>>>import sys
>>>sys.getdefaultencoding()
'utf-8'

數據類型:

Python中的數據類型有以下三種:

  1. 字符串(如,‘12345’)
  2. 字節串(如,b’12345’)
  3. 數字(如,12345)

utf-8使用三個字節來表示漢字,如:

>>> u'漢'.encode('uft-8')
b'\xe6\xb1\x89'

utf-8兼容ascii,由於十六進制的前128(0x00~0x80)個數與ASCII是一一對應的關係,所以在python中,表示字節串的時候將會出現16進制與ASCII碼混合出現的情況。如:

>>> b'\x25\x90\x52'
b'%\x90R'
>>> [ hex(x) for x in b'%\x90R' ]
['0x25', '0x90', '0x52']

Python默認以十進制進行顯示和運算,比如:

>>> 0b10       #用二進制表示的數字
2
>>> 0o10       #用八進制表示的數字
8
>>> 0x10       #用十六進制表示的數字
16
>>> 0b10 + 0o10 + 0x10
26

字節串轉數字需要用到struct模塊:

>>>import struct
>>>struct.unpack('<H', b'\x00\x29')
(10496,)

參考文檔
1. Python中的字符串與字符編碼
2. Python3下的編碼與進制轉換總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章