一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。
python中的字符串是字符序列,string类代表基于Unicode国际字符集的字符串,接下来我们会介绍一下常用的方法,需要注意一点:所有字符串方法都会返回新值,并不会更改或者操作原始的字符串。
字符串方法:repleace,strip,split,upper,lower,join,find,index…
1、repleace
python中string.replace(str1,str2,max)方法是以某个指定的字符串来替换之前的字符串中指定的部分或者全部字符串的方法,并且该方法还支持指定替换的次数,如果指定了替换次数,则replace()替换将不会超过指定的次数。参数str1是被替换的字符串,参数str2是替换后新的字符串,参数max是指定替换的最大次数。
eg:
str1 = 'abcdbfghd'
n = str1.replace('b','234',2)
print(n)
此时打印结果为“a234cd234fghd”,把字符串str1中的‘b’替换成‘234’,最多替换2次(如果有2个‘b’,两个都替换,如果只有一个‘b’,那只替换一个,如果有3个或者更多,只替换两个)
注意事项:如果不指定替换次数,则replace() 方法会替换全部指定的字符串
2、strip
python中string.strip(char)方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列,该方法只能删除头部或者尾部的字符,不能删除中间的字符。参数char是移除字符串头尾指定的字符序列。如果char什么都不传,默认表示去掉头尾空格
eg:
str1 = '000abcdbfghd0000000'
str2 = ' 你好,李焕英 '
n= str1.strip('0')
m = str2.strip()
print(n)
print(m)
此时打印结果n为“abcdbfghd”,m为“你好,李焕英”,把字符数str1中的0头尾去掉,把str2中的空格去掉
注意事项:rstrip(char)方法是移除字符串尾部指定的字符,lstrip(char)方法是移除字符串头部指定的字符。用法同strip()一致
3、split
python中string.split(str='',num=string.count(str))方法是通过指定分隔符对字符串进行切片,返回分割后的字符串列表。参数str是分隔符,默认为所有的空字符,包含空格、换行(\n)、制表符(\t)等;参数num是分割次数。默认为 -1, 即分隔所有,如果参数 num 有指定值,则分隔 num+1 个子字符串。
eg:
str1 = '000abcdbfghd0000000'
str2 = ' 你好,李焕英 '
n = str1.split('0',3)
m = str2.split()
print(n)
print(m)
此时打印结果n为['', '', '', 'abcdbfghd0000000'],m为['你好,李焕英']。将字符串str1以’0’分割,分割成3+1个字符串,最后返回分割后的字符串列表;str2是以空格为分隔符,分割出新的列表。
4、upper
python中string.upper() 方法是将字符串中的小写字母转为大写字母,返回小写字母转为大写字母的字符串。
eg:
str1 = 'abcdbfghdABCD'
n = str1.upper()
print(n)
此时打印结果为“ABCDBFGHDABCD”,就是将字符串str1中的小写字母转化成大写字母
5、lower
python中string.lower()方法是转换字符串中所有大写字符为小写,返回将字符串中所有大写字符转换为小写后生成的字符串。用法同upper()方法一致,就一个转行成大写,一个转成成小写。
eg:
str1 = 'ABCDEFGABCDabcd'
n = str1.lower()
print(n)
此时打印结果为“abcdefgabcdabcd”,就是将字符串str1中的大写字母转化成小写字母。
6、join
python中string.join(seq)方法是用于将序列中的元素以指定的字符连接生成一个新的字符串,返回通过指定字符连接序列中元素后生成的新字符串。参数seq要连接的元素序列。
eg:
str = '*'
list1 = ['你','好','啊']
n = str.join(list1)
print(n)
此时打印结果为”你好啊“,就是将列表list1中的元素以str值()连接,生成一个新的字符串”你好*啊“,注意,如果str为空时,直接就是将列表连接起来。
7、find
python中sting.find(str,beg=0,end=len(string))方法是检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围(包含beg不包含end),则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。参数str是指定检索的字符串,参数beg是开始索引,默认为0,参数end是结束索引,默认为字符串的长度。
eg:
str1 = 'hello,wold!'
n = str1.find('ld',0,10)
m = str1.find('d',3,8)
print(n)
print(m)
此时打印结果n为8,m为-1,n表示检测字符串str1中是否包含’ld'字符串,从第一个字符开始检测,检测到索引值为10-1的字符,检测是有的,返回字符‘l’的索引值为8。m表示检测字符串str1中是否包含’d'字符串,从索引值为3的开始找,检测到索引值为8-1的字符,检测结果是没有找到,则返回-1. 注意:如果要找到的字符串的索引值刚好等于end值,此时是查询不到的。
8、index python中string.index(str,beg=0,end=len(string))方法是检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围(包含beg不包含end),则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则抛出异常。参数str是指定检索的字符串,参数beg是开始索引,默认为0,参数end是结束索引,默认为字符串的长度。 该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
eg:
str1 = 'hello,wold!'
n = str1.index('d',0,10)
print(n)
此时打印结果为9
str1 = 'hello,wold!'
m = str1.index('!',4,11)
print(m)
此时运行会报错Traceback (most recent call last): File "/Applications/python-code/contractApi/maopao.py", line 121, in m = str1.index('!',4,10) ValueError: substring not found