字符串相关操作大致总结以下9个部分,包括常用字符集合、大小写转换、判断字符元素类型、字符填充、字符串搜索、字符串替换、字符串添加、字符串修剪以及字符串分割。
'字符串相关函数'
'1.字符串常量集合'
import string
print(string.ascii_uppercase) #大写字母
print(string.ascii_lowercase) #小写字母
print(string.ascii_letters) #大小写字母
print(string.digits) #数字
print(string.punctuation) #符号集合
print(string.printable) #可输入字符合集,包括大小写字母数字和符号的合集
'2.字符串大小写转换 5个'
str='hello,woRld!'
print(str.capitalize()) #仅首字母大写,Hello,world!
print(str.title()) #仅每个单词首字母大写,Hello,World!
print(str.upper()) #每个字母都大写,HELLO,WORLD!
print(str.lower()) #每个字母都小写,hello,world!
print(str.swapcase()) #大小写互换,HELLO,WOrLD!
'3.字符串内容判断 10个'
num='123'
alp='asd'
num_alp='a1s2d'
printable='`~!@#$%'
print(num.isdigit()) #字符串中的字符是否都是数字,True
print(alp.isalpha()) #字符串中的字符是否都是字母,True
print(num_alp.isalnum()) #字符串中的字符是否都是字母和数字,True
print(printable.isprintable()) #字符串中的字符是否都是可输入字符,True
print(num.isnumeric()) #字符串中的字符是否都是数字,True
print(alp.islower()) #字符串中的字符是否都是小写字母,True
print(num_alp.isupper()) #字符串中的字符是否都是大写字母,False
print(alp.istitle()) #字符串中的字符是形如标题Hello World,False
print(' '.isspace()) #字符串中的字符是否都是空格,True
print('哈'.isascii()) #字符串中的字符是否可用ascll码表示,汉字是Unicode编码表示的所以是False
'4.字符串填充'
str='Welcome'
print(str.center(13,'*'))#***Welcome***
print(str.ljust(10,'+')) #Welcome+++
print(str.rjust(10,'-')) #---Welcome
print(str.zfill(10)) #000Welcome
print('-100'.zfill(10)) #-000000100
print('+100'.zfill(10)) #+000000100
'5.字符串搜索'
str='awasdhiwhhihuasd~hjdsasdihfi'
print(str.index('asd')) #str中有子字符串时回返回收自费所在索引值,若不存在则报错
try:
print(str.index('aes'))
except ValueError as v:
print(v)
print(str.find('asd')) #str中有子字符串时会返回首字母所在索引值,若不存在则返回-1
print(str.find('aes'))
print(str.count('asd')) #返回字符串中包含的子串个数
print(str.count('aes')) #不存在则返回0
'6.字符串替换'
str='hello,world!'
print(str.replace('world','python')) #生成替换字符的复制,hello,python!原字符串str未改变
print(str) #hello,world!
str='awasdhiwhhihuasd~hjdsasdihfi'
print(str.replace('asd','ASD',2)) #awASDhiwhhihuASD~hjdsasdihfi
'7.字符串添加'
#join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
#用法:str.join(sequence),sequence包括字符串、列表、元祖、集合及字典(字典仅连接key),其中列表、元祖和集合的元素都必须是字符串,否则会报错
lis=['I','am','IronMan!']
print(' '.join(lis)) #I am IronMan!
print('*'.join({'1','2'}))
print('-'.join('ABCD'))
print('+'.join(('a','b','c')))
print('~'.join({'a':1,'b':2}))
'8.字符串修剪'
b="qq-qeasdzxcrtqwe----"
print(b.strip('q')) #-qeasdzxcrtqwe----
'9.字符串切割'
b="this is string example"
print(b.split(' ')) #以空格为分割符进行切片 ['this', 'is', 'string']
'9.字符串切割'
'''
partition(sep)对给定字符串进行切割,切割成三部分
首先搜索到字符串sep,将sep之前的部分为一部分,sep本身作为一部分,剩下作为一部分
partition()与rpartition()之间十分相似,主要不同体现在当字符串中没有指定sep时
partition()分为三部分,字符串、空白、空白
rpartition()分为三部分,空白、空白、字符串'''
test='haoiugdsgfasdhreiuufufg'
print(test.partition('asd')) #('haoiugdsgf', 'asd', 'hreiuufufg')
print(test.partition(' nji'))#('haoiugdsgfasdhreiuufufg', '', '')
print(test.rpartition('njj'))#('', '', 'haoiugdsgfasdhreiuufufg')