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),当步长省略时,可以顺便省略最后一个冒号。
例如:
与字符串索引不同,切片操作不会因为下标越界而抛出异常,而是简单地在字符串尾部截断或者返回一个空字符串。
因为字符串是不可变的对象,所以不能对字符串切片赋值。例如: