在Python中,字符串被视为对象。它的类型名为 str,函数type可以输出字面量和变量的类型,下面是个实例:

关于对象的概念以后会在Python类的教程中介绍。我们现在需要了解的重要概念是:对象具有属性和方法。
属性是在类内部定义的变量或常量,而方法是在类内部定义的函数。对象是类的一个具体实例,类是对象的模板。
要想调用对象的属性和方法,需要在对象后面加一个点号运算符,然后连接属性或方法,下面是调用字符串方法的实例:

在Python中,方法与属性的调用区别在于,属性名后面不需要任何后缀,而方法名后面始终需要有一个小括号,即使一个参数也没有。小括号中可以接收参数,多个参数用逗号隔开。
注:在VB、VBScript、按键精灵等语言中,如果没有参数是可以省略小括号的。不过在C、C++、C#、Java、JavaScript以及易语言中都不能省略。
Python中的字符串对象没有什么常用的属性,但有很多常用的方法。下面根据它的功能进行介绍。
查找子字符串
find方法可以查找子字符串在父字符串中的位置索引,索引是整数,从0开始。其使用格式如下:
find(sub[, start[, end]])
1、sub:要查找的子字符串。
2、start:起始查找位置,int型,可选,默认为0。
3、end:结束查找位置,int型,可选,默认为查找整个字符串。
4、返回值为int型。表示sub在字符串中首次出现的位置。如果未找到,返回-1。
下面是使用示例:

替换
replace方法可用于替换字符串中的子字符串。不支持正则表达式替换。其使用格式如下:
replace(old, new[, count=-1])
1、old:要替换的老字符串。
2、new:用于替换的新字符串。
3、count:替换次数,int型,可选,默认为替换所有可能的替换。
4、返回值为替换后的str类型的字符串。
一般全部替换使用示例:

只替换两次:

删除字符串边界
strip、lstrip、rstrip 三个方法可用于删除字符串左边或右边的指定字符,这三个方法的用法和参数的含义都是一样的,区别在于:
1、lstrip 删除左边,l是left左边的缩写;
2、rstrip 删除右边,r是right右边的缩写;
3、strip 删除两边。
以strip的使用格式为例,其用法如下:
strip(chars)
其中 chars 是要删除的子字符串,类型为str,要删除的子字符串为空时,默认删除空白符(包括'\n', '\r', '\t', ' '),即换行符、回车符、制表符、空格。
返回值为str型。返回两端删除了指定字符序列的字符串,注意字符串中间的字符不会删除。要想删除中间的字符,可以使用上面 replace 方法。
如果参数省略,则会删除空白符,如果参数没有省略,则不会再删除空白符了,除非参数中包含了空白符序列。
注意,删除的是字符序列中的任意一个字符,而不是完整的字符串。比如参数为'bc',则会删除所有的'b'和'c',包括'bb'、'cb'、'cc'等。

转换大小写
Python字符串与转换大小写功能有关的方法有转换大小写的:upper、lower、title、swapcase、capitalize。以及判断是否是大写的isupper、判断是否是全小写的islower、判断是否首字母大写的istitle,以及相关的判断是否全是字母的isalpha。这些方法都没有参数,可以只后缀一对小括号调用。
1、upper方法将字符串中的字符全部转换成大写字母。

当然这种情形下,什么符号隔开都是一样的,会全部转换:

2、lower方法将字符串中的字符全部转换成小写字母。

3、title方法可以将字符串中的单词首字符转换成大写字母。

它可以转换空格、点号、下划线、/,逗号、冒号等字符隔开的所有单词的首字母:

4、swapcase方法可以进行大小写互换,即将字符串中的所有小写字母转换成大写,大写字母全部转换成小写:

5、capitalize方法将字符串的首字母大写,其他所有单词(包括首字母)都转换成小写:

6、casefold方法是Python3.3版本之后引入的,相对于lower,支持更具暴力的转小写。比如德语(2017年之前唯一的没有大写的德语字母),lower是不支持转换的(因为它已经是小写了),但是casefold会转换成两个小写的s(以德语为母语的大多数瑞士人习惯用两个小写s表示):

lower也支持转换英文字母以外的字符,比如大写的希腊字母,以德尔塔为例:

当然,casefold也可以转换:

判断是否是大小写方法应用示例:

判断是否是字母:

取字符串中子字符串出现的次数
可以使用count方法:

它的使用格式为:
count(sub, start, end)
1、sub为要计数的子字符串。
2、start为开始查找的位置,可省略,省略时为0,表示从头开始查找。
3、end表示结束查找的位置,可省略,省略时表示查找到字符串结尾。
下面是提供所有参数的示例:

分割字符串
split方法可以使用指定字符将字符串分割,其使用格式如下:
split(sep=None, maxsplit=-1)
其中参数 maxsplit 表示分割数量,省略表示全部分割。类似于上文 replace 方法的 count 参数。
最重要的参数是 sep,其表示用作分割字符串的分割符。下面是个实例:

省略时使用空白符分割(可以是空格、换行、制表符中的任一种,连续的空白符视为一个,比如\n\r):

如果字符串中不包含指定分隔符(或者没有提供分隔符),则返回一个由原字符串组成的只包含一个成员的列表:

注:我曾经错误的以为这种情形会返回空列表,导致程序出现Bug,调试许久才发现是这个原因。
分隔符参数可以省略,但是不能使用空字符串('')做为分隔符,会出现错误“ValueError: empty separator”:

这个[]中括号包围的数据称为list列表,是split方法的返回值类型,关于list,将在列表篇章介绍,可以将其理解为数组(一种数据的集合)。

连接列表中的所有成员
join方法可以使用字符串将列表中的所有成员连接起来,与split分割的功能正好相反。

判断字符串是否是数字
判断字符串是否是数字相关的方法有isdigit、isdecimal、isnumeric。它们的返回值都逻辑型(bool),它们的相同点是都支持阿拉伯整数数字的判断:

需要注意的是,它们都不支持小数的判断:

也都不支持负数的判断:

仅支持十进制的数值表示,不支持二、八、及十六进制的形式。


三者的区别在于:
1、isnumeric支持汉字和罗马数字,其他都不支持:


2、isdigit支持二进制数值,其他方法不支持:

注意事项
1、字符串对象的所有方法,不影响字符串对象本身。如果需要处理结果,应该定义一个新变量来接收处理结果。
2、Python将引号包含的字符串字面量也视为对象。即可以直接使用字符串字面量(当然也可以使用变量)加点号连接字符串的方法。这也是现代语言的标识,古老的落后的VB等语言不支持这种特性。
3、字符串没有length属性,可用len函数返回字符串的长度。这一点与JavaScript等语言不同。

4、Python字符串支持的方法还有很多,你可以使用dir函数查看字符串支持的所有方法与属性:

结语
关于字符串对象的内容到此就结束了,字符串相关的基础内容也结束了,你可以温习一下字符串相关的上两篇内容: