
2.4 字符串方法
Python的强大之处就在于它有很多内置的函数,可以很方便地使用这些函数来完成我们的需求。字符串有很多可以使用的函数,下面介绍一些。
2.4.1 find函数
find函数实现了在一个长字符串中查找较短子字符串的功能。这个函数的返回是子字符串所在位置的开始左端索引。如果在长字符串中没有找到对应的子字符串则函数会返回-1。注意字符串的find函数并不是返回布尔值,如果函数的返回值是0,那就说明find函数在索引为0的位置找到了子串。


除了从开始的位置来查找对应的字符串之外,find函数还能够设定可选的起始点和结束点参数:

在上面的代码中,不同起始点和结束点所对应的结果不同。通常情况下,在Python中,函数的起始位置和终止位置(第二和第三个参数)产生的搜索字符串位置会包含第一个索引,但不包含第二个索引。这种做法在Python中比较常见。
2.4.2 join函数
可以使用join函数来连接多个不同的字符串,并且通过函数参数来指定连接的字符。如下面的例子:


2.4.3 lower函数
Python中使用lower函数来返回字符串的小写形式:

如果在对文字进行操作时,可以忽略字符的大小写情况,就可以使用这个函数来将所有字母转换为小写形式。比如我们想要查找一个列表中是否有某一个包含字符串'ted'的用户名,而用户输入的是'Ted',这样系统就会认为没有对应的用户名。如果列表中保存的是'Ted'而用户输入'ted'甚至'TED',这样也不能找到对应的字符。这时候我们就需要使用lower函数将对应的字符转换为小写格式。
2.4.4 replace函数
可以使用replace函数来替换一个字符串中的某些连续字符,使用函数后,会返回一个经过修改的字符串,而原来的字符串并没有改变。

上面的代码完成了替换一个单词的功能,replace函数有两个参数,'us'是需要被替换的字符串,'ss'是替换的字符串。
2.4.5 split函数
可以使用split函数将一个字符串进行分割处理,根据分割的标志不同,这个函数会返回不同的值。

2.4.6 strip函数
可以使用strip函数去掉一个字符串两边的(不包括内部)空,这样返回的字符串就是在前后不含有空格的字符串:

这个函数很有用,如果用户的输入中不小心多加了几个空格,可以使用这个函数来将这些无用的空格去除。除了去除前后位置的空格,也可以指定需要去除的字符,然后把它们当成strip函数的参数,例如下面的程序:

在上面的例子中,当strip函数的参数中有多个字符时,函数将会同时对这些字符标志进行处理。
2.4.7 translate函数
translate函数可以实现和replace函数一样的功能,用于替换字符串中的一些字符,不同的是,translate函数只会处理单个字符。优点是可以同时进行多个替换,有时候使用translate函数的效率会高于replace函数。