python学习手册附录_python学习手册(第4版)-第8部分&附录.pdf

python学习手册(第4版)-第8部分

第八部分

高级话题

第36章

Unicode和字节字符串

在本书的核心类型部分关于字符串的一章中 (第 章),我有意地限制了大多数

7 P y t h o n

程序员需要了解的字符串话题的子集的范围。因为大多数程序员只是处理像A S C I I这样

的文本的简单形式,他们快乐地使用着Python 的基本的 字符串类型及其相关的操作,

str

并且不需要掌握更加高级的字符串概念。实际上,这样的程序员很大程度上可以忽略

Python 3.0 中的字符串的变化,并且继续使用他们过去所使用的字符串。

另一方面,一些程序员处理更加专业的数据类型:非A S C I I 的字符串集、图像文件内

容,等等。对于这些程序员 (以及其他可能某一天加入这一队伍的程序员),在本章

中,我们将介绍P y t h on字符串的其他内容,并且探讨P y t h on字符串模型中一些较为高级

的话题。

特别是,我们将介绍Python支持的Unicode文本的基础知识——在国际化应用程序中使用

的宽字符字符串,以及二进制数据——表示绝对的字节值的字符串。我们将看到,高级

的字符串表示法在Python 当前版本中已经产生了分歧:

• Python 3.0为二进制数据提供了一种替代字符串类型,并且在其常规的字符串类型

中支持 文本 ( 看作 的一种简单类型)。

Unicode ASCII Unicode

• Python 2.6为非ASCII Unicode文本提供了一种替代字符串类型,并且在其常规的字

符串类型中支持简单文本和二进制数据。

此外,由于P y t h o n 的字符串模式对于如何处理非A SC I I文件有着直接的影响,我们还将

在这里介绍相关话题的基础知识。最后,我们还将简单地看看一些高级字符串和二进制

工具,例如模式匹配、对象pickle化、二进制数据包装和XML解析,以及Python 3.0 的字

符串变化对它们产生影响的方式。

893

正式来说,本章是关于高级话题的一章,因为并不是所有的程序员都需要深入U n i c o d e

编码或二进制数据的世界。如果你需要关注处理这两种形式,那么,你将会发现P y t h o n

的字符串模式提供了所需的支持。

Python 3.0 中的字符串修改

P y t h o n 3.0 中最引入注目的修改之一,就是字符串对象类型的变化。简而言之,P y t h o n

2.X 的 和 类型已经融入了Python 3.0 的 和 类型,并且增加了一种新的

str unicode str bytes

可变的类型bytearray。bytearray类型在Python 2.6 中也可以使用 (但在更早的版本中

不能用),但是,它在Python 3.0 中得到完全支持,并且不像是Python 2.6 中那样清楚地

区分文本和二进制内容。

特别是,如果我们处理本质上是U n i c o d e或二进制的数据,这些修改对于代码可能会有

切实的影响。实际上,作为首要的一般性规则,我们需要如何关注这一话题,很大程度

上取决于遇到如下的哪种情况:

• 如果处理非ASCII Unicode文本,例如,在国际化应用程序或某些XML解析器的结

果这样的环境中,你将会发现P y t h o n 3.0 中对文本编码的支持是不同的,但是可能

比Python 2.6 中的支持更加直接、易用和无缝。

• 如果处理二进制数据,例如,使用st r u c t模块处理的图形或音频文件的形式或打包

的数据,我们需要理解Python 3.0 中新的bytes对

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值