返回介绍

Python 3.0 中的字符串应用

发布于 2024-01-29 22:24:14 字数 1524 浏览 0 评论 0 收藏 0

让我们再看一些例子,这些例子展示了如何使用Python 3.0字符串类型。提前强调一点:本节中的代码都只在Python 3.0下运行和使用。然而,基本的字符串操作通常在Python各版本中是可移植的。用str类型表示的简单的ASCII字符串在Python 2.6和Python 3.0下都能工作(并且确实像我们在本书第7章中所见到的那样)。此外,尽管Python 2.6中没有bytes类型(它只有通用的str),它通常按照这样的方式来运行代码:在Python 2.6中,调用bytes(X)作为str(X)的同义词出现,并且新的常量形式b'...'看做与常量'...'相同。然而,我们仍然可能在一些个别的例子中遇到版本差异;例如,Python 2.6的bytes调用,不允许Python 3.0中bytes所要求的第二个参数(编码名称)。

常量和基本属性

当调用str或bytes这样的一个内置函数的时候,会引发Python 3.0字符串对象,来处理调用open(下一小节介绍)所创建的一个文件,或者在脚本中编写常量语法。对于后者,一种新的常量形式b 'xxx'(以及对等的B 'xxx')用来创建Python 3.0中的bytes对象,bytearray对象可能通过调用bytearray函数来创建,这会带有各种可能的参数。

更正式地说,在Python 3.0中,所有当前字符串常量形式,'xxx'、"xxx"和三引号字符串块,都产生一个str;在它们任何一种前面添加一个b或B,则会创建一个bytes。这个新的b'...'字节常量类似于用来抑制反斜杠转义的r'...' raw字符串。考虑在Python 3.0中运行如下语句:

bytes对象实际上是较小的整数的一个序列,尽管它尽可能地将自己的内容打印为字符:

bytes对象是不可修改的,就像str(尽管后面将要介绍的bytearray是可以修改的),我们可以把一个str、bytes或整数赋给一个bytes对象的偏移。bytes前缀对于任何字符串常量形式也有效:

正如前面提到的,在Python 2.6中,为了兼容性而使用b 'xxx',但是它与'xxx'是相同的,并且产生一个str,并且,bytes只是str的同义词;正如你已经看到的,在Python 3.0中,这二者都解决了bytes类型之间的差异。还要注意到,Python 2.6中的u 'xxx'和U 'xxx' Unicode字符串常量形式在Python 3.0中已经取消了,而是使用'xxx'替代,因为所有的字符串都是Unicode,即便它们包含所有的ASCII字符(在本章后面的“编码非ASCII文本”小节将更多地讨论)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文