- Python程序設(shè)計(jì)與算法基礎(chǔ)教程(第2版)(微課版)
- 江紅 余青松
- 687字
- 2019-11-15 20:19:07
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é)編碼和解碼示例。

- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- iOS面試一戰(zhàn)到底
- C#高級編程(第10版) C# 6 & .NET Core 1.0 (.NET開發(fā)經(jīng)典名著)
- 自然語言處理實(shí)戰(zhàn):預(yù)訓(xùn)練模型應(yīng)用及其產(chǎn)品化
- Debian 7:System Administration Best Practices
- Visual Basic編程:從基礎(chǔ)到實(shí)踐(第2版)
- Python測試開發(fā)入門與實(shí)踐
- Oracle JDeveloper 11gR2 Cookbook
- RISC-V體系結(jié)構(gòu)編程與實(shí)踐(第2版)
- Couchbase Essentials
- Go語言底層原理剖析
- Java 9 Programming By Example
- 邊玩邊學(xué)Scratch3.0少兒趣味編程
- H5+移動營銷設(shè)計(jì)寶典
- INSTANT PLC Programming with RSLogix 5000