zzxworld

Python3 字符串基础操作学习总结

Python3 字符串基础操作学习总结

在日常编程开发中,永远离不开对字符串的操作。或者说,大部分时候都是在处理各种不同来源和格式的字符串数据。本文总结了 Python3 操作字符串的各种基础方法和函数,了解并掌握这些方法对提高 Python 编程效率大有裨益。

定义字符串

使用引号可以定义一个字符串:

'我是 Python 字符串'

使用双引号效果类似:

"我是 Python 字符串"

当字符串的内容中需要包含引号时,有两种解决方式。一是混用单引号和双引号:

"我要在字符串中使用 ' 号"
'他告诉我:"Python 一点都不难"'

第二种方法是在使用同样引号的前提下,使用反斜杠符号转义要包含在字符串中的引号:

'我要在字符串中使用 \' 号'

上面定义的都是单行字符串,如果要定义多行格式的字符串,可以使用 \n 换行符号:

'第一行内容\n第二行内容'

\n 符号会造成换行,这意味着在碰到 'C:\data\name' 这种需要正常单行显示的字符串时会出现意料之外的结果。这时可以通过多加一个反斜杠来解决:

'文件路径在 C:\data\\name'

更简单的方法是使用 r 前缀符号:

r'文件路径在 C:\data\name'

定义多行格式字符串的另外一种方法是使用三重引号:

'''
第一行内容
第二行内容
'''

使用 + 符号可以拼接两个不同来源的字符串:

'abc' + 'def'

如果是像上面这样的字面值而非变量,可以省略 + 符号:

'abc' 'def'

相邻的两个字面值字符串会自动进行合并。

字符串索引和切片操作

Python 字符串变量支持索引操作。比如有这样一个字符串变量:

words = 'Python'

要取出字符串变量中的第一个字符:

>>> words[0]
'P'

取出最后一个字符:

>>> words[5]
'n'

倒序方法取出最后一个字符:

>>> words[-1]
'n'

索引操作用来取出单个字符,使用切片操作可以取出多个字符:

>>> words[0:2]
'Py'

切片的第一个参数默认是 0,所以上面的切片操作也可以使用下面的简写方式:

>>> words[:2]
'Py'

第二个参数默认值为字符串长度,所以到最后一个字符的切片操作也可以使用简写方式:

>>> words[2:]
'thon'

Python 字符串不支持修改,所以无法通过 words[0] = 'p' 的方式来变更其中任意字符。要进行类似操作只能采用组合并新建字符串的方式来处理:

>>> 'p' + words[1:]
'python'

字符串格式化

字符串的格式化操作比较实用,它通过把一些变量值代入预定义的字符串模板,用来实现一些需要按规定格式生成字符串数据的功能。比如生成 SQL,或是消息模板等场景。最原始的字符串格式化方式如下:

>>> 'Python %s' % '很有趣'
'Python 很有趣'

更对象化的写法则如下:

>>> 'Python {}'.format('很有趣')
'Python 很有趣'

上面两种方式用起来方便,但在碰到多个值的时候使用时就有问题了。因为前面字符串中的占位符号不论数量还是顺序,都是必须要和后面提供的变量一一对应。在这种情况下,使用命名占位符的方式来定义就非常灵活和方便:

>>> '{name} {message}'.format(name='Python', message='很有趣')
'Python 很有趣'

自 Python 3.6 之后,又新增了一种新的字符串格式化方法:

>>> name = 'Python'
>>> message = '很有趣'
>>> f'{name} {message}'
'Python 很有趣'

这种方式使用起来更加灵活。

字符串函数

字符串创建自 str 对象,这点可以通过 type 方法来确认:

>>> type('Python')
<class 'str'>

所以字符串默认就自带了一些函数可以使用。比如让首字母大写:

>>> 'python'.capitalize()
'Python'

让全部字母大写:

>>> 'python'.upper()
'PYTHON'

或是全部小写:

>>> 'PyThOn'.lower()
'python'

反转字符串中的大小写:

>>> 'Python'.swapcase()
'pYTHON'

设置字数,让字符串在中间,多于的长度用指定的字符补全:

>>> 'Python'.center(20, '-')
'-------Python-------'

让字符串靠左边:

>>> 'Python'.ljust(20, '-')
'Python--------------'

靠右边:

>>> 'Python'.rjust(20, '-')
'--------------Python'

获取字符串的字节对象:

>>> 'Python 还不错'.encode()
b'Python \xe8\xbf\x98\xe4\xb8\x8d\xe9\x94\x99'

判断字符串结尾是否为指定字符:

>>> 'Python'.endswith('a')
False
>>> 'Python'.endswith('n')
True

查找指定字符串是否存在:

>>> 'Python'.find('th')
2

把字符串作为分隔符:

>>> '|'.join('Python')
'P|y|t|h|o|n'

拆分字符串为数组:

>>> 'P y t h o n'.split()
['P', 'y', 't', 'h', 'o', 'n']

移除文本前后的空白符:

>>> '   Python   '.strip()
'Python'

以上只是列举了 Python str 字符串对象中一部分内置函数,更多的函数介绍建议参阅 Python 的官方文档: