该总结来源于网络王顺子的课程课件
1、字符串一般操作
1.1 字符串拼接
2、字符串函数操作方式1:str1 + str2
例子:"wangzha" +"shunzi"-----‘wangzhashunzi’
方式2:直接把两个字符串放一块
例子:"wangzha""shunzi"-----‘wangzhashunzi’
方式3:”xxx%sxxx“%(a+b)方式4:字符串乘法
例子:"abc" * 3---------"abcabcabc"
1.2 字符串切片,获取一个字符串的某个片段
1.2.1 获取某一个字符:name[下标]
下标是字符串中每个字符的编号,如果为负数, 则会从尾部开始定位,最后一个字符为 -1。
l = 'hbfeczsw' print(l[0], l[-1])结果:h w
1.2.2获取一个字符串片段:name[起始:结束:步长]
获取范围:[起始, 结束),起始包含,结束不包含
默认值:起始默认值: 0,结束默认值:len(name),步长默认值: 1
获取顺序:步长 > 0:从左往右,步长< 0:从右往左
特殊案例:反转字符串,字符串[::-1]
l = 'hbfeczsw' print(l[:], l[1:3],l[::-1])结果:hbfeczsw bf wszcefbh
2.1 查找计算
注:len为内建函数,直接使用,其余为对象方法,使用方法为:对象.方法
len:
作用:计算字符串的字符个数
语法:len(name)
参数:字符串
返回值:整型;字符个数
l = 'hbfeczsw' print(len(l))结果:8
find:
作用
查找子串索引位置
语法
find(sub, start=0,end=len(str))
参数:
参数1-sub,需要检索的字符串;参数2-start,检索的起始位置,可省略, 默认0;参数3-end,检索的结束位置,可省略, 默认len(str)
返回值:
找到了,指定索引,整型;找不到,-1
注意:
从左到右进行查找,找到后立即停止。
l = 'hbfeczsw' print(l.find('z'), l.find('a'))结果:5 -1
rfind:
使用方法同find,区别为从右往左查找。
l = 'hbfeczsw' print(l.rfind('z'), l.find('a'))结果:5 -1
index:
作用:
获取子串索引位置
语法:
index(sub, start=0, end=len(str))
参数:
参数1-sub,需要检索的字符串;参数2-start, 检索的起始位置,可省略, 默认0;参数3-end,检索的结束位置,可省略, 默认len(str)。
返回值:
找到了,指定索引,整型;找不到,异常。
注意:
从左到右进行查找,找到后立即停止
l = 'hbfeczsw' print(l.index('z')) print(l.index('a'))结果:
5
Traceback (most recent call last):
File "F:/pycharmpro/cookbook/1、数据结构域算法/test.py", line 4, in <module>
print(l.index('a'))
ValueError: substring not found
rindex:
功能使用, 同index,区别为从右往左查找。
count:
作用:
计算某个子字符串的出现个数
语法:
count(sub, start=0, end=len(str))
参数:
参数1-sub,需要检索的字符串;参数2-start,检索的起始位置,可省略, 默认0;参数3-end,检索的结束位置,可省略, 默认len(str)
返回值:
子字符串出现的个数,整型。
l = 'hbfeczsw' print(l.count('s'), l.count('a'))结果:1 0
2.2 转换计算
replace:
作用:
使用给定的新字符串 替换原字符串中的 旧字符串
语法:
replace(old, new[, count])
参数:
参数1-old,需要被替换的旧字符串;参数2-new,替换后的新字符串;参数3-count,替换的个数,可省略, 表示替换全部
返回值:
替换后的结果字符串
注意:
并不会修改原字符串本身
l = 'hbfeczsw' print(l.replace('zsw', 'haha')) print(l)结果:
hbfechaha
hbfeczsw
capitalize:
作用:
将字符串首字母变为大写
语法:
capitalize()
参数:
无
返回值:
首字符大写后的新字符串
注意:
并不会修改原字符串本身
l = 'hbfeczsw' print(l.capitalize()) print(l)结果:
Hbfeczsw
hbfeczsw
title:
作用:
将字符串每个单词的首字母变为大写
语法:
title()
参数:
无
返回值:
每个单词首字符大写后的新字符串
注意:
并不会修改原字符串本身
l = 'hbfec zsw' print(l.title()) print(l)结果:
Hbfec Zsw
hbfec zsw
lower:
作用:
将字符串每个字符都变为小写
语法:
lower()
参数:
无
返回值:
全部变为小写后的新字符串
注意:
并不会修改原字符串本身
l = 'HbFec zsw' print(l.lower()) print(l)结果:
hbfec zsw
HbFec zsw
upper:
作用:
将字符串每个字符都变为大写
语法:
upper()
参数:
无
返回值:
全部变为大写后的新字符串
注意:
并不会修改原字符串本身
l = 'HbFec zsw' print(l.upper()) print(l)结果:
HBFEC ZSW
HbFec zsw
2.3 填充压缩
ljust:
作用:
根据指定字符(1个), 将原字符串填充够指定长度
l表示原字符串靠左
语法:
ljust(width,fillchar)
参数:
参数1-width,指定结果字符串的长度
参数2-fillchar,如果原字符串长度 < 指定长度时,填充过去的字符
返回值:
填充完毕的结果字符串
注意:
不会修改原字符串
填充字符的长度为1
只有原字符串长度 < 指定结果长度时才会填充
l = 'HbFec zsw' print(l.ljust(15, 'a')) print(l.ljust(7, 'a')) print(l)结果:
HbFec zswaaaaaa
HbFec zsw
HbFec zsw
rjust:
作用:
根据指定字符(1个), 将原字符串填充够指定长度
r表示原字符串靠右
语法:
rjust(width,fillchar)
参数:
参数1-width,指定结果字符串的长度
参数2-fillchar,如果原字符串长度 < 指定长度时,填充过去的字符
返回值:
填充完毕的结果字符串
注意:
不会修改原字符串
填充字符的长度为1
只有原字符串长度 < 指定结果长度时才会填充
l = 'HbFec zsw' print(l.rjust(15, 'a')) print(l.rjust(7, 'a')) print(l)结果:
aaaaaaHbFec zsw
HbFec zsw
HbFec zsw
center:
作用:
根据指定字符(1个), 将原字符串填充够指定长度
center表示原字符串居中
语法:
center(width,fillchar)
参数:
参数1-width,指定结果字符串的长度
参数2-fillchar
如果原字符串长度< 指定长度时
填充过去的字符
返回值:
填充完毕的结果字符串
注意:
不会修改原字符串
填充字符的长度为1
只有原字符串长度 < 指定结果长度时才会填充
l = 'HbFec zsw' print(l.center(15, 'a')) print(l.center(7, 'a')) print(l)结果:
aaaHbFec zswaaa
HbFec zswHbFec zsw
lstrip:
作用:
移除所有原字符串指定字符(默认为空白字符)
l表示从左侧开始移除
语法:
lstrip(chars)
参数:
参数-chars为需要移除的字符集,表现形式为字符串。"abc"表示,"a"|"b"|"c"
返回值:
移除完毕的结果字符串
注意:
不会修改原字符串
l = ' HbFec zsw' print(l.lstrip(' ')) print(l.lstrip('b')) print('HbFec zsw'.lstrip('H')) print(l)结果:
HbFec zsw
HbFec zsw
HbFec zswHbFec zsw
rstrip:
作用:
移除所有原字符串指定字符(默认为空白字符)
l表示从右侧开始移除
语法:
lstrip(chars)
参数:
参数-chars为需要移除的字符集,表现形式为字符串。"abc"表示,"a"|"b"|"c"
返回值:
移除完毕的结果字符串
注意:
不会修改原字符串
2.4 分割拼接
split:
作用:
将一个大的字符串分割成几个子字符串
语法:
split(sep, maxsplit)
参数:
参数1-sep,分隔符
参数2-maxsplit,最大的分割次数,可省略, 有多少分割多少
返回值:
分割后的子字符串,组成的列表
list 列表类型
注意:
并不会修改原字符串本身
l = 'HbFec zsw' print(l.split(' ')) print(l)结果:
['HbFec', 'zsw']
HbFec zsw
partition:
作用:
根据指定的分隔符,返回(分隔符左侧内容, 分隔符, 分隔符右侧内容)
语法:
partition(sep)
参数:
参数-sep,分隔符
返回值:
如果查找到分隔符
(分隔符左侧内容,分隔符, 分隔符右侧内容)
tuple 类型
如果没有查找到分隔符
(原字符串,"", "")
tuple 类型
注意:
不会修改原字符串
从左侧开始查找分隔符
l = 'HbFec zsw' print(l.partition(' ')) print(l)结果:
('HbFec', ' ', 'zsw')
HbFec zsw
rpartition:
作用:
根据指定的分隔符,返回(分隔符左侧内容, 分隔符, 分隔符右侧内容)
r表示从右侧开始查找分隔符
语法:
partition(sep)
参数:
参数-sep,分隔符
返回值:
如果查找到分隔符
(分隔符左侧内容,分隔符, 分隔符右侧内容)
tuple 类型
如果没有查找到分隔符
(原字符串,"", "")
tuple 类型
注意:
不会修改原字符串
从右侧开始查找分隔符
splitlines:
作用:
按照换行符(\r,\n), 将字符串拆成多个元素, 保存到列表中
语法:
splitlines(keepends)
参数:
参数-keepends
是否保留换行符
bool 类型
返回值:
被换行符分割的多个字符串, 作为元素组成的列表
list 类型
注意
不会修改原字符串
l = '''hbfec zsw''' print(l.splitlines(True)) print(l.splitlines(False)) print(l)结果:
['hbfec\n', 'zsw']
['hbfec', 'zsw']
hbfeczsw
join:
作用:
根据指定字符串,将给定的可迭代对象, 进行拼接, 得到拼接后的字符串
语法:
join(iterable)
参数:
iterable
可迭代的对象:字符串,元组,列表...
返回值:
拼接好的新字符串
l = 'hbfeczsw' print('.'.join(l))结果:
h.b.f.e.c.z.s.w
2.5 判定
isalpha:
作用:
字符串中是否所有的字符都是字母,不包含该数字,特殊符号,标点符号等等,少有一个字符
语法:
isalpha()
参数:
无
返回值:
是否全是字母
bool 类型
l = 'hbfeczsw' print(l.isalpha())结果:True
isdigit:
作用:
字符串中是否所有的字符都是数字,不包含该字母,特殊符号,标点符号等等,至少有一个字符
语法:
isdigit()
参数:
无
返回值:
是否全是数字
bool 类型
l = '12345' l1 = '123,' print(l.isdigit()) print(l1.isdigit())结果:
True
False
isalnum:
作用:
字符串中是否所有的字符都是数字或者字母,不包含该特殊符号,标点符号等等,至少有一个字符
语法:
isalnum()
参数:
无
返回值:
是否全是数字或者字母
bool 类型
l = 'hbfec123' print(l.isalnum())结果:True
isspace:
作用:
字符串中是否所有的字符都是空白符,包括空格,缩进,换行等不可见转义符,至少有一个字符
语法:
isspace()
参数:
无
返回值:
是否全是空白符
bool 类型
l = ' ' l1 = ' h' print(l.isspace()) print(l1.isspace())结果:
True
False
startswith:
作用:
判定一个字符串是否以某个前缀开头
语法:
startswith(prefix,start=0, end=len(str))
参数:
参数1-prefix,需要判定的前缀字符串
参数2-start,判定起始位置
参数3-end,判定结束位置
返回值:
是否以指定前缀开头
bool 类型
l = 'hbfec' print(l.startswith('h'))结果:True
endswith:
作用:
判定一个字符串是否以某个后缀结尾
语法:
endswith(suffix,start=0, end=len(str))
参数:
参数1-suffix,需要判定的后缀字符串
参数2-start,判定起始位置
参数3-end,判定结束位置
返回值:
是否以指定后缀结尾
bool 类型