- 字符串的查找与替换
1.1字符串查找
find():
格式:
str.find(sub[,start[,end]])
sub代表指定要查找的子串
start:开始索引,默认为0
end:结束索引,默认为字符串长度
例如查找python中的t
word='t'
string='python'
result=string.find(word)
print(result)
这个只会找到首个字串的地址,若要找所有的,需要编程实现
1.2字符串替换
方法:replace()
作用:将当前字符串中的指定字串换成新的字串,并且返回替换后的新字符串
格式:
str.replace(old,new[,count])
old:被替换的旧字符串
new:替换旧字串的新子串
count:表示替换旧字符串的次数默认全部替换
- 字符串的分割与拼接
2.1字符串的分割
split()方法,按照指定分隔符对字符串进行分割,返回由分割后的子串组成的列表
格式:
str.split(sep=None,maxsplit=-1)
sep:分隔符,默认为空字符
maxsplit:分割次数,默认-1,表示不限制分割
分割的时候会把分隔符删掉
string_example="The more efforts you make,the more fortune you get."
print(string_example.split())
print(string_example.split('m'))
print(string_example.split('e',2))
2.2字符串拼接
join()
格式:
str.join(iterable)
例如:
symbol='*'
world ='Python'
print(symbol.join(world))
print(world)
结果如下:
还可以使用“+”拼接类似于java
例如
start='py'
end='thon'
print(start+end)
结果
print('做'+"'''个试验'''")#里边可以含有三引号
print('再做'+'''个试验''')#单引号和三引号拼接
需要注意的是拼接分割都只是在原字符串上进行操作,但是并不会改变原字符串,只是进返回一个值而已。
- 删除字符串的指定字符串
strip(){头尾都删}、lstrip(){头}、rstrip(){尾}
自己在下边实验的是只能删除第一个字母开始,删除指定内容
或者最后开始指定内容,如果开始给的字符串,第一个和字符串第一个不一致,则删除不了
- 字符串大小写转换
1.upper()全部转大写
2.lower()全部转小写
3.capitalize()字符串中第一个字母转大写
4.title()字符串中每个单词的首字母转换为大写
- 字符串对齐
str.center(width[,fillchar]):返回长度为width的字符串,原字符串居中显示
str.ljust(width[,fillchar]):返回长度为width的字符串,原字符左对齐显示
str.rjust(width[,fillchar]):返回长度为width的字符串,原字符右对齐显示
参数width表示返回字符串长度
fillchar表示:指定的字符串长度大于源字符串长度的时候的补充字符默认为空格
6.字符串元素的索引
由一个个元素依次组成的字符串,python中把这种特性的数据称之为sequence
(序列)
'浅浅的做个实验'
其实和c中的数组类似,或者字符串数组。
以上几个字的索引依次是0123456
用法如下:
test='浅浅的做个实验'
print(test[0])
结果如下:
需要注意的是不要越界,类似于数组越界
py中索引也可以是负数
我理解的是从右向左,从-1开始,依次到最后一个元素
test='浅浅的做个实验'
print(test[-1])
print(test[-7])
结果如下
负数的作用大概就是当字符串特别长的时候,我们可以用-1表示最后一个省事一点
7.字符串切片(从中切出一部分类似于-子字符串提取)
sequence特性的数据对象都支持切片操作,字符串具有sequence特性的,所以也支持切片。
切法:(第一个字的下标到最后一个字的下标加一)
字符串名字[要提取的第一个字的下标:要提取的最后一个字的下标+1]
# 0 1 2 3 4 5 6
test='做一个切片实验'
# -7-6-5-4-3-2-1
print(test[0:3])
print(test[-7:-4])
如果后边的下标省略,意思就是说一直提取到最后
# 0 1 2 3 4 5 6
test='做一个切片实验'
# -7-6-5-4-3-2-1
print(test[0:])
print(test[-7:])
前边也可以省略,意思是从第一个开始
还可以拼接下嘞
# 0 1 2 3 4 5 6
test='做一个切片实验'
# -7-6-5-4-3-2-1
print(test[:3]+test[3:])
print(test[:-4]+test[-4:])
如果都省略呢?
会全部输出,和直接print(字符串名效果一样)
# 0 1 2 3 4 5 6
test='做一个切片实验'
# -7-6-5-4-3-2-1
print(test[:])
print(test[:])
8.获取字符串长度:
内置函数len可以用来获取字符串的长度
test='一个长度实验'
print(len(test))
6.编程题
6.1找小写字母的个数
s='AbcDeFGhIJ'
count=0
for i in s:
if 'a'<=i<='z':
count+=1
print('小写字母个数是:%d'%count)
6.2检查字符串是否包含python若包含,将他替换成Python
s="Life is short. I use python"
s2= s.find('python')
if s2!=-1:
s=s.replace('python','Python')
print(s)
else:
print(s)
结果: