Python学习-字符串(str)的常用方法
2018-07-05 本文已影响67人
残阳夕露
查看所有Python相关学习笔记
字符串的常用方法
字符串的常用方法
-
重点掌握
-
find 如果有该元素:返回值是该查找元素的 index ,如果没有该元素则返回:-1
str2.find(',',14)#14是从index=14地方开始往后面找
-
count 计算该字符出现的次数
-
startswith/endswith 返回值bool -T F
-
isalpha 检查字符串中是否都是字母
-
isdigit 检查字符串中是否都是数字
-
str.join 将 sequence类型的参数的元素字符串合并(连接)到一个字符串,string 作为分隔符
-
split 返回的List类型---改切点字符会没有
-
lower 将字符串里面如果有大写字母的全部转为小写字母
-
upper 将字符串里面如果有大写字母的全部转为大写字母
-
replace 替换字符串里面指定的子字符串--出现多少个就替换多少个
-
strip 将字符串前置空格和后置空格删除---无法去掉中间的空格
-
- 大小写
a = 'hEllo pYthon' print(a.capitalize()) #生成一个新的字符串,首字母大写,其余小写 print(a.title())#生成一个新的字符串,将每个单词的首字母大写,其余小写 print(a.upper()) #生成一个新的字符串,将所有字母大写 print(a.casefold()) #生成一个新的字符串,所有字母小写 print(a.lower())#生成一个新的字符串,所有字母小写 print(a.swapcase())#生成一个新的字符串,翻转字符串中的大小写
- 执行结果
Hello python Hello Python HELLO PYTHON hello python hello python HeLLO PyTHON
- 填充
a = 'hEllo pYthon' print(a.center(20)) #生成一个新的字符串,将字符串居中,并用空格填充成指定长度(两边都填充) print(a.ljust(20)) #生成一个新的字符串,将字符串居左,并用空格填充成指定长度(填充右边) print(a.rjust(20)) #生成一个新的字符串,将字符串居右,并用空格填充成指定长度(填充左边) # zfill(width)返回长度未width的字符串,原字符串右对齐,前面用0填充 print(a.zfill(15))
- 执行结果
hEllo pYthon hEllo pYthon hEllo pYthon 000hEllo pYthon
- 次数查询
a = 'hEllo pYthon' print(a.count('h',0,0)) #查询'h'在字符串a的下标0到下标2之间出现的次数, #0、2代表范围(0、2可省略,代表查询整个字符串内出现的此说) #print(a.count(h)) #前开后闭(包括开始位置,不包括结束位置)
- 执行结果
0
- 元素查询
print(a.find('l',3,4))#查询下标3到下标4之间到'l'的下标,如果不存在则返回-1 #rfind(sub,[,start[,end]])类似与find()方法,不过是从右边开始查找 print(a.index('l',3,4))#查询下标3到下标4之间到'l'的下标,如果'l'不存在,会产生一个异常 # rindex(sub[,start[,end]])类似index(),不过是从右边开始 print(a.endswith('l',0,2)) #查询下标0到下标2范围内的字符串是否以'n'结束,前开后闭(包括开始位置,不包括结束位置) print(a.startswith('l',2))#查询下标2到最后范围内的字符串是否以'l'开始,前开后闭(包括开始位置,不包括结束位置)
- 执行结果
3 3 False True
- 转换
a = 'hEllo pYthon' a = 'hello\tworld' print(a.expandtabs(tabsize=2)) #生成一个新的字符串,将\t转话为空格,默认tabsize=8
- 执行结果
hello world
- 去空格
a = ' abc ' # strip() 去掉字符串两边的所有空格(包括\t和\n) print(a.strip()) # lstrip()去掉字符串左边的所有空格(包括\t和\n) print(a.lstrip()) # rstrip()去掉字符串右边的所有空格(包括\t和\n) print(a.rstrip())
- 执行结果
abc abc abc
- 分隔(split)
# partition(sub)找到字符串sub,把字符串分成一个三元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回('原字符串','','') a = 'abcdefgh' print(a.partition('d')) # rpartition(sub) 类似partiton()方法,不过是从右边开始查找 print(a.rpartition(('d'))) # split(sep = None, maxsplit = -1)不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分隔maxsplit个子字符传,返回切片后的子字符串拼接的列表 a = 'abcd,edff,ddd dda hhh\ndddd,\tdddd' print(a.split()) # 默认分隔:空格,\n,\t print(a.split(',')) print(a.split(',',2)) # splitlines(([keepends]))按照'\n'分隔,返回一个包含各行作为元素的列表,如果keepends参数指定,则返回前keepends行 a = '''第一行 第二行 第三行\n第四行\t好好''' print(a.splitlines())
- 执行结果
('abc', 'd', 'efgh') ('abc', 'd', 'efgh') ['abcd,edff,ddd', 'dda', 'hhh', 'dddd,', 'dddd'] ['abcd', 'edff', 'ddd dda hhh\ndddd', '\tdddd'] ['abcd', 'edff', 'ddd dda hhh\ndddd,\tdddd'] ['第一行', '第二行', '第三行', '第四行\t好好']
- 替换
# replace(old,new,[,count])把字符串中的old子字符串替换成new子字符串,如果count指定,则替换不超过count次 a = 'aaabbbcccddd' print(a.replace('a','好')) print(a.replace('a','好',2)) # translate(table)根据table的规则(可以由str.makertrans('a','b')定制)转换字符串中的字符 a = 'aaaaaaaaaaabbbbbbbbbbbbccccccccccccccc' b = a.translate(str.maketrans('a','*')) print(b)#***********bbbbbbbbbbbbccccccccccccccc
- 执行结果
好好好bbbcccddd 好好abbbcccddd ***********bbbbbbbbbbbbccccccccccccccc
- 插入
# join(sub)以字符串作为分配符,插入到sub中所有的字符之间 a = 'abc' b = '哈哈哈哈哈哈' print(a.join(b)) print(','.join(b))
- 执行结果
哈abc哈abc哈abc哈abc哈abc哈 哈,哈,哈,哈,哈,哈
- 判断
# isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False a = '对的\td' print(a.isalnum()) # 验证a是否为纯字符 # isalpha()如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False a = '对对对dd' print(a.isalpha()) #验证是否为纯字符(包含中文或字母,不包含符合,数字) # isdecimal()如果字符串只包含十进制数字则返回True,否则返回False a = '22222' print(a.isdecimal()) # isdigit()如果字符串只包含数字则返回True,否则返回False a = '3333' print(a.isdigit()) #验证是否为纯数字(不包含字母,符合,数字) # islower()如果字符串至少包含一个区分大小写的字符,并且这些字符都是小写,则返回True,否则返回False a ='aaddd 对的F' print(a.islower()) # 验证字符串内的英文字母是否都为小写 # isnumeric()如果字符串中只包含数字字符,则返回True,否则返回False a = '2222223 3' print(a.isnumeric()) #验证是否为纯数字(不包含字母,符合,数字) # isspace()如果字符串中只包含空格,则返回True,否则返回False a = ' ' print(a.isspace()) #验证字符串是否为空格 # istitle()如果字符串是标题化(所有单词都是以大写开始,其余字母均是小写),则返回True,否则返回False a = 'F ' print(a.istitle()) # isupper()如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回True,否则返回False a = 'F 的' print(a.isupper()) #验证英文字母是否都为大写
- 执行结果
False True True True False False True True True