首页 > 编程笔记 > Python笔记 阅读:11

Python字符串操作方法汇总(附带实例)

Python 程序中,对字符串的操作可以分为很多种,包括拼接字符串、截取字符串、获取字符串长度、分割字符串、合并字符串、字符串大小写转换、统计字符串、检索字符串等。

Python 提供了多种内建的方法和函数来处理字符串,接下来逐一讲解。

Python字符串拼接

字符串拼接是指将两个及以上的字符串拼接成一个字符串。

在 Python 程序,拼接字符串的方式有两种。首先,可以套用下面的语法格式:
strname = 'str1''str2''str3'

输入代码:
cloudy = 'php' 'Python' 'C++' '95'
print(cloudy)
运行结果为:

phpPythonC++95

由此可见,四个字符串可拼接为一个字符串 cloudy。

此外,可使用“+”拼接字符串。输入代码:
cloudy = 'php'
peter = 'Python'
angel = 'C+++'
jane = '95'
print(cloudy + peter + angel + jane)
运行结果为:

phpPythonC++95


在实际生活中,经常会出现使用字符串拼接的情况。例如,客户林先生在充话费后,可收到短信“尊敬的客户林先生,您已经成功充话费100.00元”。这句话中的“林先生”和“100.00”这两个字符串是会改变的,剩余的内容适用于每一个客户。此时可单独定义会改变的字符串。

输入代码:
name = '林先生'
money = '100.00'
message = '尊敬的客户 ' + name + ',您已经成功充话费 ' + money + '元'
print(message)
运行结果为:

尊敬的客户林先生,您已经成功充话费100.00元

Python截取字符串

字符串由多个字符构成。我们可通过字符串的索引截取字符串、获取指定的字符、返回指定字符的索引等。

下面使用方括号获取单个字符,语法为:
strname[index]
strname 为字符串的名字,index 为索引,索引可以是正整数或负整数。如果索引超出字符串的范围,则会报错。

下面截取字符串。输入代码:
name="hello world!"
print(name[4])
运行结果为:

o

由于字符串的索引是从 0 开始的,所以 name[4] 表示字符 o。

下面使用负整数截取字符串。输入代码:
name="hello world!"
print(name[-4])
运行结果为:

r

name[-1] 为字符“!”,name[-2] 为字符 d,以此类推,name[-4] 为字符 r。

Python字符串长度

在 Python 程序中,想获取字符串长度可以使用 len() 函数。

len() 函数的语法为:
len(string)

例如:
name = 'hello world!'
print(len(name))
运行结果为:

12

字符串“hello world!”的长度为 12,单词与单词之间的空格也算一个字符。

在 Python 中,数字、英文字母、小数点、下画线、空格各占一个字节,一个汉字占 2~4 个字节,具体占多少个字节取决于字符串的编码方式。

Python 程序中常用的编码方式包括 GBK 和 UTF-8。汉字在使用 GBK 编码时占用 2 个字节,在使用 UTF-8 编码时一般占用 3 个字节。

1) GBK 编码下的字符串

输入代码:
name = '我喜欢学习'
print(len(name.encode('gbk')))
运行结果为:

10

1 个汉字占用 2 个字节,5 个汉字占用 10 个字节。

2) UTF-8编码下的字符串

输入代码:
name = '我喜欢学习'
print(len(name.encode('UTF-8')))
运行结果为:

15

1 个汉字占用 3 个字节,5 个汉字占用 15 个字节。

Python分割字符串

分割字符串可以使用 split() 函数,语法为:
str.split(sep,maxsplit)
str 表示需要分割的字符串;sep 表示指定的分隔符,可以包含多个字符;maxsplit 表示可选参数,用于指定分割的次数,可以不填写。

输入代码:
name="hellohello"
print(name.split('ll',))
运行结果为:

['he', 'ohe', 'o']


在分割字符串时,可以限制分隔次数。输入代码:
name="hellohellohellohello"
print(name.split('ll',3))
运行结果为:

['he', 'ohe', 'ohe','ohello']

Python合并字符串

join() 函数用于合并字符串,此函数会使用指定的分隔符,将列表(元组)中的多个字符串合并在一起。

join() 函数的语法为:
newstr = str.join(iterable)
newstr 表示合并后的新字符串;str 用于指定分隔符;iterable 表示原字符串,可以是列表、元组等形式。

输入代码:
name="hello"
abc='好好学习'
print(name.join(abc))
运行结果为:

好hello好hello学hello习

Python字符串大小写转换

字符串可以进行大小写转换,转换函数如下:
输入代码:
name = 'cyuyanzhongwenwang'
print(name.title())
运行结果为:

Cyuyanzhongwenwang


输入代码:
name = 'CYUYANZHONGWENWANG'
print(name.lower())
运行结果为:

cyuyanzhongwenwang


输入代码:
name = 'cyuyanzhongwenwang'
print(name.upper())
运行结果为:

CYUYANZHONGWENWANG

Python统计字符串

count() 函数可对字符串进行统计操作,语法为:
str.count('sub', start, end)
str 表示需要统计的字符串;sub 表示要检索的字符串;start 指定检索的开始位置,如果不指定,则默认从头开始检索字符串;end 指定检索的结束位置,如果不指定,则默认在末尾处停止检索字符串。

输入代码:
name = 'lin.fu.r.o.n.g'
print(name.count('.', 0, -1))
运行结果为:

5

参数 0 表示从头开始检索字符串,参数 -1 表示在末尾处停止检索字符串,字符串共出现 5 次“.”字符。

Python检索字符串位置

检索字符串位置可以使用 index() 函数。如果要检索的字符串不存在,则 index() 函数会报错。如果要检索的字符串出现多次,则 index() 函数只显示首次出现字符串的位置。

index() 函数的语法为:
str.index('sub', start, end)

输入代码:
name = 'linfu.r.o.n.g'
print(name.index('.', 0, -1))
运行结果为:

5

由此可见,index() 函数从头开始检索,在末尾处结束检索,首次出现字符“.”的索引为 5。

Python字符串对齐

有 3 种函数可以进行字符串的文本对齐工作:
ljust() 函数的语法为:
str.ljust(width,'addchar')
str 表示需要对齐的字符串;width 表示字符串占用的总长度;addchar 表示要对齐的字符串长度不足时,使用此字符串补够总长度。

输入代码:
name = 'C语言中文网'
address = 'https://c.biancheng.net/'
print(name.ljust(11, '-'))
print(address.ljust(11, '-'))
运行结果为:

C语言中文网-----
https://c.biancheng.net/

ljust() 函数指定字符串占用的总长度为 11,变量 name 占用了 6 个长度,所以需要补 5 个“-”。

与 ljust() 函数类似,rjust() 函数可进行字符串的右对齐操作。输入代码:
name = 'C语言中文网'
address = 'https://c.biancheng.net/'
print(name.rjust(11, '-'))
print(address.rjust(11, '-'))
运行结果为:

-----C语言中文网
https://c.biancheng.net/


使用 center() 函数进行居中对齐操作时,如果字符串的长度不够,则会先补右边的内容,再补左边的内容。输入代码:
name = 'C语言中文网'
address = 'https://c.biancheng.net/'
print(name.center(11, '-'))
print(address.center(11, '-'))
运行结果为:

---C语言中文网--
https://c.biancheng.net/

Python检索字符串

startswith() 函数用于检索字符串中是否存在指定的字符串,如果存在指定的字符串,则返回 True,否则返回 False。输入代码:
name = 'C语言中文网'
print(name.startswith('语', 1))
运行结果为:

True


endswith() 函数用于检索字符串是否以指定字符串结尾,如果结尾字符串为指定的字符串,则返回 True,否则返回 False。输入代码:
name = 'C语言中文网'
print(name.endswith('网'))
运行结果为:

True

Python格式化输出字符串

format() 函数可用于格式化输出,所有数据都可以使用某种指定的格式进行输出。

下面使用 format() 函数进行格式化输出字符串。输入代码:
student = '姓名:{:s}\t学号:{:s}'
print(student.format('林富荣', '20231680001'))
print(student.format('林小云', '20231680027'))
运行结果为:

姓名:林富荣    学号:20231680001
姓名:林小云    学号:20231680027

相关文章