一、前言

在Python开发的过程中,为了实现某项功能,经常需要对某些字符串进行特殊的处理,如拼接字符串、截取字符串、格式化字符串等。下面将对Python中常用字符串操作方法进行介绍。

二、拼接字符串

在使用“+”运算符可完成对多个字符串的拼接,“+”运算符可以连接多个字符串并产生一个字符串对象。

例如,定义两个字符串,一个保存英文版的名言,另一个用于保存中文版的名言,然后使用“+”运算符进行拼接,代码如下:

1

2

3

mot_en = "Rememberance is a form meeting. Frgetfulness is a form of freedom"

mot_cn = "记忆是一个相遇。遗忘是一种自由。"

print(mot_en + "-" + mot_cn)

  运行结果如下:

字符串不允许与其他类型的数据拼接,例如,使用下面代码,字符串与数值相拼接,将产生异常。

1

2

3

4

5

str1 = "今天一共走了"

num = 23456

str2 = "步"

print(str1 + num + str2)

解决该问题,可以将整个数转换为字符串。将正数转换为字符串可以用str()函数。修改后的代码如下:

1

2

3

4

5

str1 = "今天一共走了"

num = 23456

str2 = "步"

print(str1 + str(num) + str2)

运行上面代码,结果如下:

三、计算字符串的长度

  由于不同的字符串所占字节不同,所以要计算字符串的长度,需要先了解个字符串所占的字节数。在Python中,数字、英文、小数点、下划线和空格占一个字节;一个汉字可以会占2~4个字节,占几个字节取决于采用的编码。

在Python中,提供了len()函数计算字符串的长度。语法格式如下:

1

len(str)

其中,string用于指定要统计的字符串。

例如:定义一个字符串,内容为“人生苦短,我用Python”,然后用len()函数计算该字符串的长度,代码如下:

1

2

3

4

5

str1 = "人生苦短,我用Python"  # 定义字符串

string = len(str1)  # 计算字符串长度

print(string)

执行上述代码显示为“13”

在实际开发时,有时需要获取字符串所占的字节数,即如果采用UTF-8编码,汉字占3个字节,采用GBK或者GB2312时,汉字占两个字节,可以使用encode()方法进行编码后再进行获取。

1

2

3

4

5

str1 = "人生苦短,我用Python"  # 定义字符串

string = len(str1.encode())  # 计算UTF-8编码字符串的长度

print(string)

运行代码结果如下:

如果要获取采用GBK编码的字符串的长度,可以使用下列代码:

1

2

3

4

5

str1 = "人生苦短,我用Python"  # 定义字符串

string = len(str1.encode("gbk"))  # 计算GBK编码字符串的长度

print(string)

运行代码结果如下:

四、截取字符串

由于字符串也属于序列,所以要截取字符串,可以采取切片来实现。通过切片的方式截取字符串的语法格式如下:

1

string[start : end : step]

参数说明:

  • string:表示要截取的字符串
  • start:表示要截取的第一个字符的索引(包括该字符),如果不指定,则默认为“0”
  • end:示要截取的后一个字符的索引(不包括该字符),如果不指定,则默认为字符串的长度
  • step:表示切片的步长,如果省略,则默认为“1”,当省略步长时,最后一个冒号可以省略

定义一个字符,然后截取不同长度的子字符,代码如下:

1

2

3

4

5

6

7

8

str1 = "人生苦短,我用Python"  # 原生字符串

substr1 = str1[1# 截取第2字符

substr2 = str1[5:]  # 从第6字符截取

substr3 = str1[:5# 从左边数截取5个字符

substr4 = str1[2:5# 截取第3到第5个字符

print("原生字符串", str1)

print(substr1 + "\n" + substr2 + "\n" + substr3 + "\n" + substr4)

运行结果如下:

在进行字符串截取的时候,如果指定的索引不存在,则会抛出异常,如下图所示:

要解决该问题,可以使用try…except语句抛出异常,代码如下:

1

2

3

4

5

str1 = "人生苦短,我用Python"  # 原生字符串

try:

    sbustr1 = str1[15]

except IndexError:

    print("指定索引不存在")

运行结果如下:

五、分隔字符串

在Python中,字符串对象提供了分隔字符串的方法,分隔字符串是把字符串分隔为列表。

字符串对象的split()方法可以实现分割,split()方法的语法格式如下:

1

str.split(sep,maxsplit)

参数说明:

  • str:表示要进行分割的字符串。
  • sep:用于指定分割符,可以包含多个字符,默认为None,即所有空字符(包括空格、换行“\n”、制表符“\t”等)
  • maxsplit:可选参数,用于指定分割的次数,如果不指定或者为-1,则分割次数没有限制,否则返回结果列表的元素个数最多为maxsplit+1
  • 返回值:分隔后的字符串列表

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐