官术网_书友最值得收藏!

5.6 字節(jié)序列

字節(jié)序列(bytes和bytearray)是由8位字節(jié)數(shù)據(jù)組成的序列數(shù)據(jù)類型,即0≤x<256的整數(shù)序列。Python內(nèi)置的字節(jié)序列數(shù)據(jù)類型包括bytes(不可變對象)、bytearray(可變對象)和memoryview。

5.6.1 bytes常量

使用字母b加單引號或雙引號括起來的內(nèi)容是bytes常量。Python解釋器自動創(chuàng)建bytes型對象實(shí)例。bytes常量與字符串的定義方式類似。

(1)單引號(b' '):包含在單引號中的字符串,其中可以包含雙引號。

(2)雙引號(b" "):包含在雙引號中的字符串,其中可以包含單引號。

(3)三單引號(b''' '''):包含在三單引號中的字符串,可以跨行。

(4)三雙引號(b""" """):包含在三雙引號中的字符串,可以跨行。

注意在引號中只能包含ASCII碼字符,否則將導(dǎo)致SyntaxError。例如:

例5.18】 bytes常量示例。

5.6.2 創(chuàng)建bytes對象

創(chuàng)建bytes類型的對象實(shí)例的基本形式如下。

如果iterable中包含非0≤x<256的整數(shù),將導(dǎo)致ValueError。

例5.19】 創(chuàng)建bytes對象示例。

5.6.3 創(chuàng)建bytearray對象

創(chuàng)建bytearray類型的對象實(shí)例的基本形式如下。

如果iterable中包含非0≤x<256的整數(shù),將導(dǎo)致ValueError。

例5.20】 創(chuàng)建bytearray對象示例。

5.6.4 bytes和bytearray的序列操作

bytes和bytearray支持序列的基本操作,包括索引訪問、切片操作、連接操作、重復(fù)操作、成員關(guān)系操作、比較運(yùn)算操作,以及求序列的長度、最大值、最小值等。

bytes和bytearray一般基于ASCII字符串,故bytes和bytearray基本上支持str對象的類似方法,但不支持str.encode()(把字符串轉(zhuǎn)換為bytes對象)、str.format()/str.format_map()(字符串格式化)、str.isidentifier()/str.isnumeric()/str.isdecimal()/str.isprintable()(這些判斷無意義)。

注意bytes和bytearray的方法不接受字符串參數(shù),只接受bytes和bytearray參數(shù),否則將導(dǎo)致TypeError。

例5.21】 字節(jié)的序列操作示例。

5.6.5 字節(jié)編碼和解碼

字符串可以通過str.encode()方法編碼為字節(jié)碼,通過bytes和bytearray的decode()方法解碼為字符串。

例5.22】 字節(jié)編碼和解碼示例。

主站蜘蛛池模板: 翼城县| 林西县| 涞水县| 麻栗坡县| 吉木乃县| 东光县| 谷城县| 滦平县| 简阳市| 炉霍县| 定远县| 集安市| 库车县| 九龙县| 从江县| 朔州市| 无为县| 新龙县| 称多县| 花莲县| 裕民县| 湟中县| 贺兰县| 从江县| 拜城县| 扶风县| 大姚县| 左贡县| 松桃| 阿克陶县| 呼图壁县| 石屏县| 玉环县| 香河县| 什邡市| 芜湖县| 类乌齐县| 姜堰市| 应城市| 佛坪县| 吴江市|