2.7 字符串

Python内置了多种数据类型,字符串是其中最常见的类型之一。字符串就是用引号(单引号/双引号/三引号)括起来的一串字符,引号用于界定字符串的范围。

字符(Char/Character),简单来说是指在计算机上可以输入的任何字母、数字、空格、标点符号、控制符号(缩进、回车换行),等等。很多其他的编程语言(比如Java、C++、C#)都有专门的字符数据类型(char),但是Python没有。在Python的设计中,字符就是长度为1的字符串。表2-1中给出了字符串与非字符串示例。

表2-1 字符串与非字符串示例

单引号和双引号在Python语义上没有区别,我们可以任意选择。


quote = "get busy living, or get busy dying"
quote = 'get busy living, or get busy dying'

但是,它们在使用场景上存在一些细微的差异,在一些特定情况下,我们只能使用其中的一种。比如,NBA的大中锋大鲨鱼奥尼尔的名字叫作Shaquille O'Neal,名字中有一个单引号。如果我们想定义一个变量,变量的值是奥尼尔的名字,我们可能会写成如下代码。


name = 'Shaquille O'Neal'

但这样写是有问题的,因为引号本身也是合法的字符,如果字符串本身包含引号,Python解释器可能会错误地判断字符串的边界,从而引起错误。

解决的方法很简单,如果字符串本身包含单引号,那么,用双引号来括引,反之就用单引号。

所以,如下的代码是没有问题的。


name = "Shaquille O'Neal"
quote = '"seriously?" he said.'

你可能会问:“如果字符串本身既包含单引号,又包含双引号呢?”这个问题我们将在6.1.1节讨论。

在学习字符串常见操作的具体语法之前,先思考一个问题:我们通常需要对字符串做什么样的操作?如表2-2所示。

表2-2 字符串应用场景

带着这些问题,我们来看用Python是如何进行操作的。