
2.2.2 字符串类型

2.2.2 字符串类型
字符串(String)类型是Python中最常用的数据类型之一。
1.字符串对象的创建
创建字符串时,使用单引号(')、双引号(")或三个引号(三个单引号或三个双引号)将一段字符括起来。Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。例如,'a'、"Hello,World!"、'123'、'''世界'''、"""我叫王守一"""。
当一个字符串中包含单引号或者双引号字符的时候,使用和字符串中不同的引号把字符串括起来。例如,'''She said:"Let's go."'''。
使用三引号('''或""")可以指定一个多行字符串,也可以在程序中表示较长的注释。例如:

上面例子中的字符串,在IDLE中的交互显示如图2-8所示。

图2-8字符串的显示
若字符串中包含特殊含义的符号,需要使用转义字符。转义字符是以反斜杠“\”开头,后面跟一个或几个字符,其意思是将“\”后面的字符转变成另外的意义。例如,\n不代表字母n,而是换行符。常用的转义字符见表2-2。
表2-2 常用的转义字符

观察图2-8,发现在多行字符串中,换行符用“\n”表示。
在定义字符串时,为了提高可读性,应该使用不同的引号把要定义的字符串括起来,避免使用转义字符。
【例2-8】 分别在IDLE窗口和Python命令行窗口中,按交互方式执行下面的代码,查看运行结果。

从执行结果看,在IDLE中,“\r”没有使光标回到当前行的开头,如图2-9所示。

图2-9 在IDLE窗口中的执行结果
而在Python命令行下执行时,“\r”使光标回到当前行的开头,如图2-10所示。

图2-10 在Python命令行窗口中的执行结果
2.字符串的连接
由于字符串的应用非常广泛,Python提供的字符串操作也比较多,这里只介绍字符串连接运算符“+”,字符串的其他操作后面章节将详细讲解。
使用“+”运算符连接两个或更多的字符串,其运算结果是合并成为新的字符串。字符串表达式的格式如下。

当两个字符串用“+”连接起来后,第二个字符串直接添加到第一个字符串的尾部,结果是一个更长的、包含两个源字符串的全部内容的字符串。如果要把多个字符串连接起来,每两个字符串之间都要用“+”号分隔。例如:

如果“+”连接的对象有非字符串类型的数据,将显示“TypeError”(类型错误)的提示。这时要先转换成字符串再进行连接,将数值转换为字符串的函数为str(数字),例如:
