Day 7
1.字符串操作
(1)字符串的拼接
strvar = '今天是'+'星期一'
strvar += ',今天非常开心'
print(strvar)
(2)字符串的重复
strvar='重要的事情说三遍' * 3
print(strvar)
(3)字符串的跨行拼接
strvar='ksfjjfkjlksajlajsldflaskdflj'\
'多余的几行放在第二行显示'
print(strvar)
(4)字符串的索引
#正向索引 0123
strvar='1234'
#逆向索引-4-3-2-1
(5)字符串的切片
语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到字符串最后
strvar='黑夜给了我黑色的眼睛,但是我却翻白眼'
res=strvar[11:]
print(res)
(2)[:结束索引] 从开头截取到结束索引之前(结束索引—1)
res=strvar[:10]
print(res)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
res=strvar[8:10]
print(res)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
res=strvar[::3]#0 3 6 9 ...
print(res)
#倒叙
res=strvar[::-1]#-1 -2 -3 -4 -5 -6 ...
print(res)
(5)[:]或[::] 截取所有字符串
res=strvar[:]
res=strvar[::]
print(res)
2.字符串相关函数
capitalize:首个字符大写
strvar='how old are you'
res=strvar.capitalize()
print(res)
title:字符串每个单词的首字符大写
strvar='how old are you'
res=strvar.title()
print(res)
upper:所有字母变大写
strvar='how old are you'
res=strvar.upper()
print(res)
lower:所有字母变小写
strvar='How Old are You'
res=strvar.lower()
print(res)
swapcase:大小写互换
strvar='How Old are You'
res=strvar.swapcase()
print(res)
len:计算字符串长度
strvar='skmdflkasflskldfk'
res=len(strvar)
print(res)
count:统计字符串中某个元素的数量
strvar='klsdjlaksdladflkaslk'
res=strvar.count('a')
print(res)
find:查找字符串中某个元素第一次出现的索引位置
字符串.find(‘字符’,开始索引,结束索引),如果找不到返回-1
strvar='oh Father this is ma Favorate dog'
res=strvar.find('F')
res=strvar.find('F',4)
res=strvar.fin('F',5,10)
print(res)
index:与find作用相同,如果找不到直接报错
startswish:判断是否以某个字符开头
strvar='oh father this is my favorate dog'
res=strvar.startswish('oh')
res=strvar.startswish('oh',10)
res=strvar.startswish('this',10,13)
print(res)
endswish:判断是否以某个字符结尾
res=strvar.endswish('dog')
res=strvar.endswish('rate',-12)
res=strvar.endswish('rate',-12,-4)
print(res)
isupper:判断字符串字母是否都是大写
strvar='ASDFGFMJKJ'
res=strvar,isupper()
print(res)
islower:判断字符串字母是否都是小写
strvar='dfegergergegerg'
res=strvar.islower()
print(res)
isdecimal:判断字符串是否是纯数字组成
strvar='32132321324654'
strvar='3213sdd2'
strvar='321323132.321321'
res=strvar.isdecimal()
print(res)
ljust:填充字符串,原字符居左(默认填充空格)
strvar='adf'
res=strvar.ljust(10)
print(res)
rjust:填充字符串,原字符串居右(默认填充空格)
res=strvar.rjust(10,'*')
print(res)
center:填充字符串,原字符居中(默认填充空格)
res=strvar.center(10)#原字符长度+填充字符长度=10
res=strvar.center(10.'*')
print(res)
rstrip:去掉右边某个字符
strvar='@@@@@王发财 @@@@@'
res=strvar.rstrip('@')
print(res)
lstrip:去除左边某个字符
res=strvar.lstrip('@')
print('res')
重要!!!!
split:将字符串按照某个字符分割成列表(默认是空格)
strvar='you can you up no can no bb'
lst=strvar.split()
print(lst)
strvar='you-can-you-up-no-can-no-bb'
lst=strvar.split('-',2)#从左向右分割,可以指定分割次数
print(lst)
replace:将字符串的旧字符替换成新字符
replace(要替换的字符,替换成什么,替换的次数)
strvar='可爱的青蛙喜欢蚊子,有没有,有没有,还有没有'
res=strvar.replace('有没有','真没有')
res=strvar.replace('有没有','真没有',1)
print(res)
foemat:字符串的格式化
#(1)顺序传参
strvar='{}向{}开了一枪,饮弹而亡'.format('八戒','金华')
print()
#(2)索引传参
strvar='考试时{},游戏时{}'.format('唯唯诺诺','重拳出击')
print(strvar)
#(3)关键字传参
strvar='{who2}甩了一个飞吻,{who2}神魂颠倒'.format(who1='刘彩霞',who2='马生平')
print(strvar)
#(4)容器类型数据(列表或元组)传参
strvar='{1[0]}向{0[1]}抛了一个媚眼'.format(['苏您花','李护理'],('八戒','悟空'))
print('strvar')
#format 当中,不能使用逆向下标,不识别
strvar='{group2[0]}向{group1[1]}抛了一个媚眼'.format(group1=['苏您花','李护理'],group2=('八戒','悟空'))
print(strvar)
#如果容器是字典,直接写键值,不需要加上引号
strvar='{group1[ccg]}向{gruop2[1]}抛了一个媚眼'.format(group1 = {"kxq":"孙翔群","ccg":"曹晨光","syj":"宋云杰"},group2 = ("李亚","孙致和","温子月"))
print(strvar)
format的填充符号的使用(^ > <)
^ :原字符居中
< :原字符居左
:原字符居右
{who : * ^ 10}
who : 关键字参数 * :要填充字符 ^ :原字符居中 10 : 总长度
strvar='{who:*^10}在{where:>>10},{do:!<10}'.format(who='八戒',where='床上',do='拉屎')
print(strvar)
进制转换等特殊符号的使用(:d :f : s :,)
# :d 整型占位符(要求类型必须为整型)
strvar='八戒昨天买了{:d}瓶花露水',format(100) #100.5 error
print(strvar)
# :2d 占两位,不够拿空格来补,默认居右
strvar='八戒昨天买了{:2d}瓶花露水'.format(3)
# < > ^ 调整对应位置
strvar='八戒昨天买了{:<2d}瓶花露水'.format(3)
strvar='八戒昨天买了{:^3d}瓶花露水'.format(3)
print(res)
# :f 浮点型占位符(要求类型必须为浮点型)
strvar='八戒毕业时,找工作的薪资是{:f}',format(2.5)
print(strvar)
# :.2f 小数点保留两位
strvar='八戒毕业时,找工作的薪资是{:.2f}',format(2.5321131)
print(strvar)
# :s 字符串占位符(要求类型必须为字符串)
strvar='{:s}'.format('今天天气不错,万里无云')
print(strvar)
# :, 金钱占位符
strvar='{:,}'.format(1331323231131)
print(strvar)
3.列表的相关操作
(1)列表的拼接 (同元组)
lst1=[1,2,3]
lst2=[4,5,6,6]
res = lst1 + lst2
print(res)
(2)列表的重复 (同元组)
res=lst2*3
print(res)
(3)列表的切片 (同元组)
语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到列表的最后
lst=['吕洞宾','何仙姑','铁拐李','曹国舅','张果老','蓝采和','蓝采和','八戒']
res=lst[2:]
print(res)
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
res=lst[:4]
print(res)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
res=lst[4:6]
print(res)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
# 正向截取
res=lst[::2]#0 2 4 6 8 ...
print(res)
#逆向截取
res=lst[::-2]#-1 -3 -5 -7...
print(res)
(5)[:]或[::] 截取所有列表
res = lst[:]
res = lst[::]
print(res)
(4)列表的获取 (同元组)
# 0 1 2 3 4 5 6 7
lst = ["吕洞宾","何仙姑","铁拐李","曹国舅","张果老","蓝采和","韩湘子","八戒"]
# -8 -7 -6 -5 -4 -3 -2 -1
res=lst[7]
res=lst[-1]
print(res)
(5)列表的修改 ( 可切片 )
# 要求的数据类型是
# 可迭代数据(容器类型数据,range对象,迭代器)
lst=['吕洞宾','何仙姑','铁拐李','曹国舅','张果老','蓝采和','蓝采和','八戒']
# 利用切片可以一次修改多个元素,没有数上限制
lst[3:5]=['王凡','闫国章','牧树人']
print(lst)
# 切片配合步长,切出多少元素,修改多长元素
lst=['吕洞宾','何仙姑','铁拐李','曹国舅','张果老','蓝采和','蓝采和','八戒']
#res = lst[::2]
#lst[::2]='advd'
lst[::2]=range(1,5)
print(lst)
(6)列表的删除 ( 可切片 )
lst=['吕洞宾','何仙姑','铁拐李','曹国舅','张果老','蓝采和','蓝采和','八戒']
# del lst[-1]
# print(lst)
# 删除的是变量res本身,不是列表中的元素
res=lst[-1]
del res
print(lst)
# del lst[:2]
del lst[::3] #0 3 6 9 ...
print(lst)
# 元组中的列表,列表的元素可以修改
tup = (1,2,3,4,[5,6,7,(8,9,10)])
tup[-1][1]=6666
print(tup)