因为字符串属于不可变序列,所以方法中对字符串的修改,都是靠返回一个新字符串来实现的,并没有对老字符串产生影响
1、寻找文本:在字符串中,从左开始寻找自己想要的文本
str1.find(string,[startindex],[endindex]) #可选参数为开始和结束的索引
查找成功返回所处索引,失败返回-1
同类方法:
str1.index()
查找成功返回索引,失败抛出错误
2、倒找文本:在字符串中,从右开始寻找自己想要的文本
str1.rfind() #参数同上
查找成功返回所处索引,失败返回-1
同类方法:
str1.rindex()
查找成功返回索引,失败抛出错误
3、取部分文本
取文本左边
提供长度:str1[:ls]
提供字符串:str1[:str1.index(string)]
取文本右边
提供长度:str1[len(str1)-ls:]
提供字符串:str1[str1.rindex(string)+1:]
取文本中间
提供起始索引:str1[startindex:endindex]
提供起始字符串:str1[str1.index(starstring)+1:str1.rindex(endstring)]
4、连接成字符串:把列表连接成字符串
string.join(list)
str1 = '+' #此为连接符
list1 = ['1','2','3'] #注意,该列表的成员必须是string
打印结果:1+2+3
5、分割字符串到列表
string.split([fgstring],[fgcount])
默认无参是用空格进行分割
第二个参数是可选的分割次数
注:分割1次是生成2个成员,2次是3个
返回结果是列表
注:split方法与join互为逆运算
6、查找字符串并替换
str1.replace(x,y,[z])
查找到x,全部替换成y
参数z为可选参数,替换次数,为空的情况下默认全部替换
想同时替换多个值,有一个新的方法
str1.translate(table) #参数是一个替换表
下面介绍替换表生成的方法
from string import maketrans
table1 = maketrans('a','a') #这是一个包含256个字符的原始替换表
str1.translate(table1) #这样就可以替换了
注:如果需要同时替换多个,可以在生成替换表的时候修改
table1 = maketrans('ac','bk') #a 替换 b ,c 替换成 k
7、空格处理
str1.strip([s]) #删首尾空,可以使用指定参数,删除首尾指定参数
str1.lstrip([s]) #删左首空,同上
str1.rstrip([s]) #删右首空,同上
注:如果需要删除中间的空格,则只能使用其他的方法
a、替换方法
str1.replace(' ','') #替换中间所有空格
b、分割方法
''.join(str1.split())
c、正则方法
通过sub匹配替换
8、字母转换
常用字母转换
str1.lower() 转换成小写字母
str1.upper() 转换成大写字母
str1.swapcase() 大小写互换
str1.title() 转换为首字母大写,其他字母小写
对应的字母判断方法
str1.islower() #判断小写
str1.isupper() #判断大写
str1.istitle() #判断单词首字母大写
判断字符串的开头和结尾
str1.startwith(string) #判断是否以当前string开头
str1.endwith(string) #判断是否以当前string结尾
返回值:逻辑型
9、字符串格式化
单个参数格式化
print '%s是一个好人'%'张三'
两个参数
print '%s是一个%s'%('李四','坏人')
注:传递多个参数时需要使用到元组,且必须加括号
常用格式化字符串
%s 格式化字符串,可以提供字符串和int
%d 格式化字符串,可以提供数值类型,非int会被强转成int
%x 格式化字符串,可以提供数值类型,非int会被转成int,结果强转成16进制