1.1什么是字符串
字符串是一种表示文本的数据类型,字符串的字符可以是ASCII字符、各种符号以及各种Unicode字符。Python中的字符串有如下三种表示方式。
第1种:使用单引号包含字符。
'a'
注意,单引号表示的字符串里不能包含单引号,如'let's go'。
第二种:使用双引号包含字符。
"a"
注意,双引号表示的字符串里不能包含双引号,并且只能有一行。
第三种:使用三引号(三对单引号或者三对双引号)包含字符。
"""
或者
'''
需要注意的是,三引号能包含多行字符串,并且常常出现在函数声明的下一行,用来注释函数的功能。与众不同的地方在于,这个注释作为函数的一个默认属性,可以通过“函数名._doc__”进行访问。
就像C语言一样,字符串的第一个字符的索引为0,没有单独的字符类型,一个字符就是长度为一的字符串。但于C语言的字符串不同的是,Python字符串不能被改变。想向一个索引位置赋值,例如,word[0] = 'm'会导致错误。
1.2转义字符
其实,不管使用单引号还是双引号,输出字符串时,值都是一样的。至于为什么使用两种来表示是因为某些情况下,他们会派上用场,例如。
"let's go!"
上面的代码中,第1行代码的字符串内容中有单引号,所以要使用双引号包含。第2行代码中的字符串内容中有双引号,所以要用单引号包含。如果不这么做,当解释器在根据单引号或双引号辨别字符串结束符时,难免会发生错误。例如下面的代码就会报错。
>>>
当人,对于单引号或者双引号这些特殊的符号,我们可以对他们进行转义。例如,对字符串中的单引号进行转义,示例代码如下:
>>>
上述代码中,使用斜线的方式,对单引号进行了转义,当解释器遇到这个转义字符时会明白这不是字符串结束标记。而像这样的转义符号有很多种,如下表。
如果你不想使用反斜杠()转义字符,可以在字符串前面添加一个r,表示原始字符串,示例代码如下:
>>>
2.字符串的输入和输出
2.1字符串输出
Python支持字符串格式化的输出,尽管这样可能会用到非常复杂的表达式,但u最基本的用法就是将一个值插入到一个有字符串格式%s的字符串中,例如下面代码:
name
在程序中%s这样的操作符,就是Python中字符串的格式化符号。
除此之外,还可以使用%符号对其它类型的数据进行格式化,常见的格式化符号有如表形式:
接下来我们通过打印一个名片的案例来练习字符串的输出。
name
运行结果:
2.2字符串的输入
Python 3提供了input函数从标准输入读取一行文字,默认的标准输入是键盘。input函数可以接受一个Python表达式作为输入,并将运算结果返回。示例代码如下:
username
上述代码中,input函数接收的输入会直接赋值给等号左边的变量username。
需要注意的是,input函数获取的数据,即使是数字,也是以字符串的方式进行保存的。
接下来,通过一个案例来演示输入用户的登陆信息。
userName
运行结果:
3.访问字符串中的值
3.1字符串的储存方式
如果你希望访问字符串中的值,与要用下标来实现。例如,字符串name = "abcdef",在内存中的储存方式如下图所示。
每个字符都对应一个编号,并且编号是从0开始的,这些编号就代表下标。如果想从字符串中去出部分字符,可以通过下标获取。例如,取除字符d,他对应的下标是3,所以用name[3]取出来。
3.2使用切片截取字符串
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。切片的语法格式如下:
[起始:结束:步长]
需注意的是,切片选区属于左闭右开型,即从“起始”位开始,到“结束”位的前一位结束(不包含结束位本身)。接下来,通过一个案例来演示如何使用切片截取字符串name = "abcdef"。
name
运行结果:
4.字符串内建函数
字符串作为最常用的一种数据类型,它提供了很多内建函数,列举一些字符串常见的内建函数。
4.1 find
find函数用于检测字符串中是否包含子字符串sub,如果指定start(开始)和end(结束)范围,则检测是否包含在指定范围内。如果包含子字符串则返回开始的索引值,否则返回-1。
str
sub:指定检索的字符串。
start:开始索引,默认为0。
end:结束索引,默认为字符串的长度。
例如,查找“Python”是否在字符串mystr中。
mystr
运行结果:
例如,查找"long"是否在字符串mystr中。
mystr
运行结果:
4.2 index
跟find()方法一样,只不过如果str不在 mystr中会报一个异常。
str
index函数的使用:
mystr
运行结果:
4.3 count
count函数用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置,该方法返回子字符串在字符串出现的次数。
str
count函数的使用:
mystr
运行结果:
4.4 replace
replace函数把字符串中的old(旧字符串)替换成new(新字符串),方法返回的是字符串中的old(旧字符串)替换成new(新字符串)后生成的新字符串。如果指定第三个函数count,则替换不超过count次。
str
replace函数的使用:
mystr
运行结果:
4.5 split
split函数通过指定分隔符对字符串进行切片,如果参数maxsplit有指定值,则仅分割maxsplit个子字符串,该方法的返回值是分割后的字符串列表。
str
split函数的使用:
mystr
运行结果:
4.6 capitalize
capitalize函数用于将字符串的第一个字母变成大写,其他字母变小写,该方法返回第一个字母大写的字符串。
str
capitalize函数的使用:
mystr
运行结果:
4.7 title
title函数返回“标题化”的字符串,也就是说所有的单词都是以大写开始,其余字母均为小写。
str
title函数的使用:
mystr
运行结果:
4.8 startswith
startswith函数用于检查字符串是否以制定子字符串开头,如果是,则返回Ture,否则返回False。如果参数start和end指定值,则在指定范围内检查。
str
prefix:检测的字符串。
stratswith函数的使用:
mystr
运行结果:
4.9 endswith
endswith函数用于检查字符串是否以制定子字符串结尾,如果是,则返回Ture,否则返回False。如果参数start和end指定值,则在指定范围内检查。
str
endswith函数的使用:
mystr
运行结果:
4.10 lower
lower函数将字符串中的大写字母转为小写字母,返回大写字母转为小写字母的字符串。
str
lower函数的使用:
mystr
运行结果:
4.11 upper
upper函数将字符串中的小写字母转为大写字母,返回小写字母转为大写字母的字符串。
str
upper函数的使用:
mystr
运行结果:
4.12 ljust
ljust函数返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串,则返回原字符串。
str
width:指定字符串长度。
fillchar:填充字符,默认为空格。
ljust函数的使用:
mystr
运行结果:
4.13 rjusr
rjust函数返回一个原字符串右对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串,则返回原字符串。
str
rjust函数的使用:
mystr
运行结果:
4.14 center
center函数返回一个宽度为width,原字符串居中,以fillchar(默认为空格)填充左右两边的字符串。
str
center函数的使用:
mystr
运行结果:
4.15 lstrip
lstrip函数用于截掉字符串左边的空格或指定字符,返回的是一个新字符串。
str
chars:指定截取的字符。
lstrip函数的使用:
mystr1
运行结果:
4.16 rstrip
rstrip函数用于截掉字符串右边的空格或指定字符,返回的是一个新字符串。
str
rstrip函数的使用:
mystr1
运行结果:
4.17 strip
strip函数用于移除字符串头尾指定的字符(默认为空格)。
str
rstrip函数的使用:
mystr
运行结果:
4.18 partition
partition函数把字符串以指定字符分割成三部分,指定字符前,指定字符和指定字符后。
mystr
partition函数的使用:
mystr
运行结果:
4.19 splitlines
splitlines函数把字符串按照行分隔,返回一个包含各行作为元素的列表。
mystr
splitlines函数的使用:
mystr
运行结果:
4.20 isalpha
如果字符串中所有字符都是字母,则返回 True,否则返回 False。
mystr
isalpha函数的使用:
mystr1
运行结果:
4.21 isdigit
如果字符串中所有字符都是数字,则返回 True,否则返回 False。
mystr
isdigit函数的使用:
mystr1
运行结果:
4.22 isalnum
如果字符串中所有字符都是数字或字母,则返回 True,否则返回 False。
mystr
isalnum函数的使用:
mystr1
运行结果:
4.23 isspace
如果字符串中所有字符都是空格,则返回 True,否则返回 False。
mystr
isspace函数的使用:
mystr1
运行结果:
4.24 join
join函数在字符串中每个字符后面插入指定字符,构造出一个新的字符串,返回的是一个新字符串。
str
join函数的使用:
mystr
运行结果:
5.字符串运算符
我们使用%运算符来格式化输出字符串。其实,除此之外,还有一些字符串运算符。下面列举一些常见的字符串运算符。
接下来,通过一个案例来演示这些运算符在字符串中的使用。
#定义两个字符串
运行结果:
6.小结
对字符串进行了解释,介绍了什么是字符串以及对特殊字符的转义;接着介绍了字符串的格式化输入输出、字符串的访问;最后介绍了字符串的内建函数以及字符串运算符。希望大家可以结合案例多加练习,熟练掌握字符串操作的相关函数。