Python程序设计基础
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.2 字符串

1.字符串的组成

(1)字符串(String)

字符串是由字符组成的序列,如'Python is wonderful!'、'16300240001'、'张三'、''等。其中,''表示空字符串。字符串和数字一样,都是不可变对象。所谓不可变,是指不能原地修改对象的内容。例如:

(2)字符串界定符

字符串界定符用来区分字符串和其他词法单位,有以下三种形式:

①单引号,如:' ','1+1=2','He said "how are you?"'。当字符串中含有双引号时,最好使用单引号作为界定符。

②双引号,如:"","中国","It's my book."。当字符串中含有单引号时,最好使用双引号作为界定符。

③三引号,可以是连续三个单引号,也可以是连续三个双引号,如'''Hello''',"""您好"""。其常用于多行字符串,例如之前介绍的文档字符串。

(3)转义符

转义符是一些特殊的字符。Python用反斜杠(\)来转义字符,以便表示那些特殊字符,见表2-1。

表2-1 常见的转义符

以下是使用转义符的几个例子:

(4)原始字符串

原始字符串用于显示字符串原来的意思,不让转义字符生效。这就要用r或R来定义原始字符串。例如:

在上例中,如果不使用原始字符串,就得多次使用转义符'\\':

2.字符串操作的相关方法

(1)字符串长度

使用len()函数,可以确定字符串包含多少个字符,即字符串的长度。例如:

(2)字符串连接

利用加法运算符“+”可以让两个字符串首尾相连。例如:

从第2条语句的输出可以看出,IDLE环境的输出显示自动加了一个'\',以免引起歧义。第3条语句的输出说明,'\'实际并不包含在连接结果里。

(3)字符串重复

利用乘法运算符“*”可以让一个字符串自身多次重复并拼接在一起。例如:

(4)字符串索引

利用方括号运算符[ ]可以通过索引值得到相应位置(下标)的字符。

Python的索引方式有两种:①从前往后的正向索引,n个字符的字符串,其索引值从0至n-1;②从后向前的负数索引,n个字符的字符串,其索引值从-1至-n。例如:

(5)字符串切片

在Python程序中,可使用切片(slice)从字符串中提取子串。切片是Python序列的重要操作之一,适用于字符串、列表、元组、range对象等类型。

切片的参数是用两个冒号分隔的三个数字。第一个数字表示切片开始位置(默认为0),第二个数字表示切片截止位置(但不包含这个位置,默认为字符串长度),第三个数字表示切片的步长(默认为1),当步长省略时,可以顺便省略最后一个冒号。

例如:

与字符串索引不同,切片操作不会因为下标越界而抛出异常,而是简单地在字符串尾部截断或者返回一个空字符串。

因为字符串是不可变的对象,所以不能对字符串切片赋值。例如: