在使用字符串的时候通过使用一些方法能够更方便我们进行字符串的操作,我们来挑选一些常用的方法来进行讲解,其中基础方法包含count()方法、find()方法和index()方法,然后我们分为测试方法、修改方法和搜索替换方法三个角度去介绍相关函数。

1. count()方法

我们通常使用count()方法来统计字符串中的某个元素在字符串中出现的次数,如果不存在返回0,如果存在则返回存在的次数,语法格式如下:

my_str.count(x)

my_str为我们要检索的字符串名,x为我们要统计的字符。

看下面的例子:

>>> my_str
'www.dotcpp.com'
>>> my_str.count('w')
3
>>> my_str.count('.')
2
>>> my_str.count('p')
2
>>> my_str.count('*')
0

返回的数字即该字符在字符串中出现的次数,因为‘*’不存在,所以返回值为0。

2. find()方法

find方法来检索字符串中是否包含指定元素,如果包含该元素则返回该元素第一次出现的索引位置,如果不存在该字符则返回-1,它的语法结构为:

my_str.find(x)

my_str为要检索的字符串名,x为我们要寻找的元素。

看下面的例子:

>>> my_str
'www.dotcpp.com'
>>> my_str.find('w')#寻找字符w
0
>>> my_str.find('p')#寻找字符p
8
>>> my_str.find('m')#寻找字符m
13
>>> my_str.find('*')#寻找字符*,因为*不存在因而返回-1
-1

我们同样可以采用关键字in来查询指定字符是否存在于指定字符串中,如果字符串中存在指定字符则返回True,如果不存在则返回False。

看下面例子:

>>> my_str
'www.dotcpp.com'
>>> 'p' in my_str
True
>>> 'w' in my_str
True
>>> '.' in my_str
True
>>> '*' in my_str
False

但是这种方式只能知道我们要访问的元素是否存在,而不能获取到它存在的位置,大家在学习过程中可以自主选择方法去求解。

3. index()方法

index()方法和find()方法类似,index()方法在检索到指定字符的时候也会返回该字符第一次出现的索引位置,但是如果检索不到就会抛出异常,它的语法格式为:

my_str.index(x)

my_str为要检索的字符串名,x为要寻找的元素。

看下面的例子:

>>> my_str = 'www.dotcpp.com'
>>> my_str.index('w')
0
>>> my_str.index('o')
5
>>> my_str.index('*')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

找到存在的元素后会返回其在字符串中的索引位置,最后一个‘*’因为没找到而报错。

4. 标准格式

上面三种方法为他们的省略格式,在标准文档中,他们的格式分别为:

my_str.count(x[,start[,end]])
my_str.find(x[,start[,end]])
my_str.index(x[,start[,end]])

在上面讲解的时候我们没有提到括号中的内容,因为在Python文档中‘‘[]’’表示可以省略部分,因此这一部分是可以省略不写的,但是我们在使用的时候,还是可以使用的,start为索引的起始位置,end为索引的结束位置,但是不包含end。

我们来通过例子讲解一下标准格式:

>>> my_str = 'www.dotcpp.com'
>>> my_str.index('o',6,13)#在6-12之间寻找o
12
>>> my_str.count('w',0,5)#统计w在0-4之间存在的次数
3
>>> my_str.find('c',3,9)#在3-8之间寻找7
7

标准格式的使用看似比较复杂,但是使用起来却十分方便的。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译