python 杂记(二)
字符串
- 字節(jié)字符串
- 借助chr()和ord進(jìn)行轉(zhuǎn)化
- 借助struct 模塊進(jìn)行復(fù)雜的轉(zhuǎn)化
- Unicode字符串
- 轉(zhuǎn)化為字節(jié)編碼
- 轉(zhuǎn)化為UTF-8編碼
字符串有兩種格式,一個(gè)是字節(jié)字符串,一個(gè)是Unicode字符串。
字節(jié)字符串
在字節(jié)字符串(在Python中由bytes對(duì)象表示)中,每個(gè)字符僅代表一個(gè)字節(jié),因此很容易與文件或外界的其他接口進(jìn)行交互。
標(biāo)準(zhǔn)字符串僅用一對(duì)單引號(hào)標(biāo)識(shí)為文字(如example),而字節(jié)字符串要求在第一個(gè)單引號(hào)前包含b。
標(biāo)準(zhǔn)字符串
字節(jié)字符串·
print(b'12') >b'12'字節(jié)字符串中的字符只能是ACSII表中的字符。
輸出時(shí)會(huì)將b帶上。
借助chr()和ord進(jìn)行轉(zhuǎn)化
,ord()函數(shù),將返回與之等效的數(shù)字 ,只能是單個(gè)字符
>>>ord(b'A') >65] #也可以迭代字節(jié)序列 >>>list(b'Example') >[69,120,97,109,112,108,101],chr()會(huì)根據(jù)轉(zhuǎn)入的整數(shù)值返回單個(gè)字符,返回的只是常規(guī)的字符串。
>>>chr(65) >A #迭代轉(zhuǎn)化 >>>[chr(o) for o in [69,120,97,109,112,108,101]] ['E','x','a','m','p','l','e']借助struct 模塊進(jìn)行復(fù)雜的轉(zhuǎn)化
import struct >>>struct.pack(b'B',65) b'A'B指定了一個(gè)無(wú)符號(hào)的數(shù)值,因此不能是負(fù)數(shù)。范圍0~255
import struct >>>struct.pack(b'b',65) b'A'b指定一個(gè)有符號(hào)的字節(jié),范圍-128~127。
雙字節(jié)
import struct >>>struct.pack(b'Hh',65,65) b'A\x00A\x00'指定字節(jié)順序
大端序:b'>H'
小端序:b'<H'
默認(rèn)小端序
一次性打包和解包多個(gè)值
import struct first_name = 'MARY' last_name = 'Alsh' age = 28data = struct.pack(b'10s10sB',bytes(first_name,'utf8'),bytes(last_name,'utf8'),age) print(data),s格式化代碼結(jié)合數(shù)字前綴,可以表示讀取或?qū)懭氲淖址笮?/p>
Unicode字符串
轉(zhuǎn)化為字節(jié)編碼
編碼過(guò)程本身是使用字符串的encode()方法進(jìn)行管理的。只需要傳入編碼的
名稱(chēng), encode()方法就會(huì)返回一個(gè)字節(jié)字符串,以表示給定編碼中的文本。(當(dāng)然這些字符都應(yīng)該是ASCII表中的。
轉(zhuǎn)化為UTF-8編碼
總結(jié)
以上是生活随笔為你收集整理的python 杂记(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 动态规划/贪心总结(一)
- 下一篇: python前端开发之准备开发环境(建议