字符串常见操作
获取长度:len
查找内容:find,index,rfind,rindex
判断:startswith,endswith,isalpha,isdigit,isalnum,isspace
计算出现次数:count
替换内容:replace
切割字符串:split,rsplit,splitlines,partition,rpartition
修改大小写:capitalize,title,upper,lower
空格处理:ljust,rjust,center,lstrip,rstrip,strip
字符串拼接:join
注意:在Python中,字符串是不可变的!
所有的字符串相关方法,都不会改变原有的字符串,都是返回一个个结果,
在这个新的返回值里,保留了执行后的结果!
一、 len
len函数可以获取字符串的长度。
输入
dalao = '电影主角没有郑佳雨当主角的我不看!'
print(len(dalao)) # 17 获取字符串的长度
二,查找
查找相关的⽅法,使⽤⽅式⼤致相同,但是略有区别。
- find()
查找指定内容在字符串中是否存在,存在返回该内容在字符串中第一次出现的开始位置索引值,
不存在,则返回-1.
语法格式:
S.find(sub[, start[, end]]) -> int
dalao = '这世界那么多人'
# 0 1 2 3 4 5 6
print(dalao.find('这'))#0 '这'第一次出现时,'这'所在的下标 0
print(dalao.find('大佬'))#-1 '大佬'不存在,返回 -1
print(dalao.find('人', 3))#6 从下标3开始查找'人',找到“人”所在的下标是6
print(dalao.find('晴朗',1,5))#-1 从下标1开始到下标5查找"晴朗",未找到,返回 -1
- rfind()
类似于 find()函数,不过是从右边开始查找。
返回来的也是下标【第几个】所有的下标数,都是从左开始数数
输入
dalao = '这世界那么多人'
# 0 1 2 3 4 5 6
print(dalao.rfind('人')) # 6
找一个字符串中没有的字
dalao = '这世界那么多人'
# 0 1 2 3 4 5 6
print(dalao.rfind('狼')) # -1
3.index()
跟find()方法一样,只不过,find方法未找到时,返回-1,而index()str未找到时,会报一个异常。
语法格式:
S.index(sub[,start[,end]]) -> int
输入
dalao = '这世界那么多人'
# 0 1 2 3 4 5 6
print(dalao.index('人'))#6
print(dalao.rindex('人'))#6
print(dalao.index('狼'))
输出
6
6
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\new2.py", line 3, in <module>
print(dalao.index('狼'))
ValueError: substring not found
4.rindex()
类似于 index(),不过是从右边开始。
三,判断
python提供了丰富的方法,可以用来对一个字符串进行判断.
- startswith()
判断字符串是否以指定内容开始。
语法格式:
S.startswith(prefix[, start[, end]]) -> bool
dalao = '和小姐姐裸聊,结果是女装大佬,还天天要我刷游艇!犯罪吗?'
print(dalao.startswith('和')) #True
print(dalao.startswith('犯罪吗')) #False
- endswith()
判断字符串是否以指定内容结束。
输入
dalao ='往同学杯子里面吐口水构成犯罪吗?'
print(dalao.endswith('犯罪吗?')) #True
print(dalao.endswith('犯罪的!')) #False
- isalpha()
判断字符串是否是纯字母。
dalao = 'niuniu'
print(dalao.isalpha()) #True
dalao2 = 'niu niu'
print(dalao2.isalpha())#False 因为中间有空格 注册游戏名字时候会用到-不能有空格
4.isdigit()
判断一个字符串是否是纯数字,只要出现非0-9的数字,结果就是False.
输入
dalao = '12345567890'
print(dalao.isdigit()) #True
dalao2 = '3.14159265258979323846'
print(dalao2.isdigit()) #False
5.isalnum()
判断是否由数字和字母组成,只要出现了非数字和字母,就返回False
输入
dalao = 'awesome'
print(dalao.isalnum())# True
dalao = '1234567890'
print(dalao.isalnum())# True
dalao = 'dalao1234567890'
print(dalao.isalnum())# True
dalao = 'a1_'
print(dalao.isalnum())# False
6.isspace()
如果dalao中只包含空格,则返回True,否则返回False.
输入
dalao = ''
print(dalao.isspace()) # False 空字符串,并不是空格
dalao = ' '
print(dalao.isspace())# True 全是空格
dalao = ' dalao '
print(dalao.isspace())# False 含有其他内容
四,count()
语法格式:
S.count(sub[,start[,end]]) -> int
count返回str【字符串数据】在start和end之间,在dalao里面出现的次数.
输入
dalao="012345AA"#下标为0-7,共8个数字
print(dalao.count('A',1,6))#0 “A” 出现了0次
print(dalao.count('A',1,7))#1 标记的结束位置,是不计算在内
print(dalao.count('A',1,8))#2 超过了下标的最大数,表示从起始下标至末尾所有
print(dalao.count('A',1))#2 不写结束表示从起始下标至末尾所有
五 替换
replace()
replace(‘旧’,‘新’)
replace(‘旧’,‘新’,[更换的次数])
替换内容替换字符串中制定的内容,指定次数count,则替换不会超过count次。
输入
dalao = '这世界那么多AAA'
print(dalao.replace('A','B')) #这世界那么多BBB
print(dalao.replace('A','B',1)) #这世界那么多BAA--从左开始找到后仅修改一个
print(dalao)# 这世界那么多AAA ---没有修改dalao变量中的数据
六 内容分隔
内容如分隔涉及到 split , splitlines , partition ,rpartition .四个方法
split()
以指定字符串为分割符切片,如果maxsplit有指定值,则仅分割maxsplit+1 个字符串。
返回的结果是一个列表,
split()
dalao = 'A1A2A3A4A5A'
dajie = dalao.split() # 没有指定分隔符,默认使用空格,换行等空白字符串进行分隔。
print(dajie) # ['A1A2A3A4A5A']
dajie = dalao.split('3') # 以‘3’为分隔符
print(dajie) #['A1A2A', 'A4A5A']
dajie= dalao.split("A",2) #以“A”为分隔符,最多切割2刀,分成3份
print(dajie) #['', '1', '2A3A4A5A']
dajie= dalao.split("A") #见到A就砍一刀,有连续的A就多一个空的字符串
print(dajie) #['', '1', '2', '3', '4', '5', '']
rsplit()
用法和split基本一致,只是从右往左分隔。
splitlines()
按照[行]与[换行符号]分隔,返回一个包含各种行为元素的列表。
输入
dalao="""这
世\n界
那么多人"""
dajie =dalao.splitlines()
print(dajie)
#['这', '世', '界', '那么多人']
上面一共有3行,其中\n
也属于一个换行符,需要添加一行,共4行
partition()
把dalao以str分隔成三部分,str前,str,str后。该字符串前面的
该字符串
字符串之后的
三部分组成一个元组
输入
dalao = '拐卖阴阳人,这属于拐卖妇女儿童罪吗?'
print(dalao.partition('卖'))
#('拐', '卖', '阴阳人,这属于拐卖妇女儿童罪吗?')
rpartition
类似partition()函数,只是从右边开始。
dalao = '拐卖男人,这个属于拐卖妇女儿童罪吗?不属于!那么就没有保护男人的吗?不是的,这只是构成另外一个罪名。'
print(dalao.rpartition("不"))
#('拐卖男人,这个属于拐卖妇女儿童罪吗?不属于!那么就没有保护男人的吗?', '不', '是的,这只是构成另外一个罪名。')
七,修改大小写
修改大小写的功能只对英文有效,主要包括,
capitalize() 首字母大写
title() 每个单词首字母大写
lower() 全小写
upper() 全大写
输入
dalao = "luck you vERY much"
print(dalao.capitalize()) # Luck you very much
print(dalao.title()) # Luck You Very Much
print(dalao.lower()) # luck you very much
print(dalao.upper()) # LUCK YOU VERY MUCH
八,空格处理 我逛色情网站看到我自己,还一夜八百量大从优??
字符串里表格的方法。
ljust() 返回指定长度的字符串,并在右侧使用空白字符补全(左对齐)
rjust() 返回指定长度字符串,并在左侧使用空白字符补全(右对齐)
center() 返回指定长度字符串,并在两段使用空白字符补全(居中对齐)
lstrip() 删除dalao左边的空白字符
rstrip() 删除dalao右边的空白字符
strip() 删除两端的空白字符
ljust()
rjust()
center()
dalao = 'abc'
# 012 共3个字符
print(dalao.ljust(10)+'羊肉串') #右边补全7个字符串 为了显示明显加上‘羊肉串’
print(dalao.rjust(10)+'羊肉串') #左边补全7个字符串
print(dalao.center(10)+'羊肉串') # 两段使用空白字符补全(居中对齐) 前面补了3个空格 后面补了4个空格 说明多出的一个在后面补上
输出
abc 羊肉串
abc羊肉串
abc 羊肉串
lstrip()
rstrip()
strip()
dalao = ' a b c '
print(dalao.lstrip()+'羊肉串') #删除dalao左边的空白字符
print(dalao.rstrip()+'羊肉串') #删除dalao右边的空白字符
print(dalao.strip()+'羊肉串') #删除两端的空白字符
输出
a b c 羊肉串
a b c羊肉串
a b c羊肉串