字符串进阶
- 一、字符串相关操作
- 二、字符串的方法
- 1、*capitalize 字符串首字母大写
- 2、*title 每个单词首字母大写
- 3、*upper 所有字母大写
- 4、*lower 所有字母小写
- 5、*swapcase 字母大小写互换
- 6、len() 计算字符串长度
- 7、*count() 计算字符串中某个字符个数
- 8、*find 寻找字符串中某字符所在的第一个位置索引
- 9、*index 功能与find相同
- 10、*startswith 判断是否以某个字符或字符串开头
- 11、*endswith 判断是否以某个字符和字符串结尾
- 12、*isupper 判断字符串是否是大写
- 13、*islower 判断字符串是否是小写
- 14、*isdecimal 判断字符串是否以数字组成
- 15、*ljust 填充字符串原字符居左(默认填充空格)
- 16、*rjust 填充字符串原字符串居右(默认填充空格)
- 17、*center 填充字符串原字符串居中(默认填充空格)
- 18、*strip 默认去掉首位两边空白符
- 19、rstrip 去掉右边某个字符(默认去空白符)
- 20、lstrip 去掉左边某个字符(默认去掉空白符)
- 21、*split 按某字符将字符串分割成列表(默认字符是空格)
- 22、*join 按照某字符将列表拼接成字符串(容器类型皆可)
- 23、*relpace 字符串替换
- 三、字符串的格式化
一、字符串相关操作
(1)字符串的拼接
(2)字符串的重复
(3)字符串跨行拼接
(4)字符串的索引
(5)字符串的切片:
语法 =>
字符串[ : : ] 完整格式:[开始索引:结束索引: 间隔值]
[开始索引: ] 从开始索引截取到字符串最后
[ :结束索引] 从开头截取到结束索引之前(结束索引-1)
[开始索引:结束索引] 从开始索引截取到结束索引之前
[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定间隔截取字符
[ : ]或[ : : ] 截取所有字符串
1、字符串的拼接(用+拼接)
strvar1 = "我今天"
strvar2 = "去了超市"
strvar3 = "购买日用品"
res = strvar1 + strvar2 + strvar3
print(res)
运行结果:
如图,三段字符串按照加号进行了拼接。
2、字符串的重复(用*进行重复输出)
strvar = "人生苦短,我用python\n"
res = strvar * 3
print(res)
运行结果:
如图,*可连续输出三次指定字符串(\n为换行符,可进行换行)
3、字符串的跨行拼接(用\跨行拼接)
strvar = "人生苦短,"\
"我用python"
res = strvar
print(res)
运行结果:
4、字符串的索引(可通过索引获取对应字符)
#正向索引 0 1 2 3
strvar = "人生苦短"
#逆向索引 -4-3-2-1
res = strvar[1]
print(res)
运行结果:
5、字符串的切片(切片 <–>截取)
(1)[开始索引:] 从开始索引截取到字符串最后
strvar = "人生苦短,我用python"
res = strvar[5:]
print(res)
运行结果:
如图,从第五个字符读到最后。
(2)[:结束索引] 从开始索引截取到结束索引之前,注意是结束索引之前。
strvar = "人生苦短,我用python"
res = strvar[:4]
print(res)
运行结果:
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前
strvar = "人生苦短,我用python"
res = strvar[2:7]
print(res)
运行结果:
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
#正序
res = strvar[::2]
#倒序
res = strvar[::-2]
strvar = "人生苦短,我用python"
res1 = strvar[::2]
res2 = strvar[::-2]
print(res1)
print(res2)
运行结果:
(5)[:]或[::]截取所有字符串
strvar = "人生苦短,我用python"
res1 = strvar[:]
res2 = strvar[::]
print(res1)
print(res2)
运行结果:
如图,两种方法截取了所有字符串。
二、字符串的方法
1、*capitalize 字符串首字母大写
strvar = "how old are you,3 Years Old"
res = strvar.capitalize()
print(res)
运行结果:
2、*title 每个单词首字母大写
strvar = "how old are you,3 Years Old"
res = strvar.title()
print(res)
运行结果:
3、*upper 所有字母大写
strvar = "how old are you,3 Years Old"
res = strvar.upper()
print(res)
运行结果:
4、*lower 所有字母小写
strvar = "how old are you,3 Years Old"
res = strvar.lower()
print(res)
运行结果:
有个常用用法,是用户输入字符串时,可将其字母转化为大写或小写以达到忽略大小写的目的。
5、*swapcase 字母大小写互换
strvar = "how old are you,3 Years Old"
res = strvar.swapcase()
print(res)
运行结果:
6、len() 计算字符串长度
strvar = "how old are you,3 Years Old"
res = len(strvar)
print(res)
运行结果:
7、*count() 计算字符串中某个字符个数
strvar = "how old are you,3 Years Old"
res = strvar.count("o")
print(res)
运行结果:
8、*find 寻找字符串中某字符所在的第一个位置索引
用法:find(“字符”,开始索引,结束索引)
如果找不到返回-1
strvar = "how old are you,3 Years Old"
res1 = strvar.find("3",16,)
res2 = strvar.find("3",0,15)
print(res1)
print(res2)
运行结果:
9、*index 功能与find相同
与find区别:找不到字符直接报错,不会返回-1
strvar = "how old are you,3 Years Old"
res1 = strvar.index("3",16,)
res2 = strvar.index("3",0,15)
print(res1)
print(res2)
运行结果:
以上,推荐使用find!
10、*startswith 判断是否以某个字符或字符串开头
用法: startswith(“字符或字符串”:开始索引:结束索引),如果存在返回True,不存在返回False。
strvar = "how old are you,3 Years Old"
res = strvar.startswith("3 Y",16,)
print(res)
运行结果:
11、*endswith 判断是否以某个字符和字符串结尾
用法:endswith(“字符或字符串”:开始索引:结束索引)
strvar = "how old are you,3 Years Old"
res = strvar.endswith("ld",16,)
print(res)
运行结果:
12、*isupper 判断字符串是否是大写
strvar = "how old are you,3 Years Old"
res = strvar.isupper()
print(res)
运行结果:
13、*islower 判断字符串是否是小写
strvar = "how old are you,3 Years Old"
res = strvar.islower()
print(res)
运行结果:
14、*isdecimal 判断字符串是否以数字组成
# strvar = "how old are you,3 Years Old"
strvar = "1234567890"
res = strvar.isdecimal()
print(res)
运行结果:
15、*ljust 填充字符串原字符居左(默认填充空格)
# strvar = "how old are you,3 Years Old"
strvar = "abc"
res = strvar.ljust(10,"*")
print(res)
运行结果:
16、*rjust 填充字符串原字符串居右(默认填充空格)
# strvar = "how old are you,3 Years Old"
strvar = "abc"
res = strvar.rjust(10)
print(res)
运行结果:
17、*center 填充字符串原字符串居中(默认填充空格)
strvar = "abc"
res = strvar.center(10,"*")
print(res)
运行结果:
18、*strip 默认去掉首位两边空白符
strvar = " how old are you,3 Years Old "
res = strvar.strip()
print(res)
运行结果:
19、rstrip 去掉右边某个字符(默认去空白符)
strvar = "@@@how old are you,3 Years Old@@@@@"
res = strvar.rstrip("@")
print(res)
运行结果:
20、lstrip 去掉左边某个字符(默认去掉空白符)
strvar = "@@@how old are you,3 Years Old@@@@@"
res = strvar.lstrip("@")
print(res)
运行结果:
21、*split 按某字符将字符串分割成列表(默认字符是空格)
(1)默认按空格分割
strvar = "how old are you,3 Years Old"
res = strvar.split()
print(res)
运行结果:
(2)指定分割符进行分割
strvar = "how-old-are-you,3-Years-Old"
res = strvar.split("-")
print(res)
运行结果:
(3)从右到左分割,并且指定分割符和分割次数
strvar = "how-old-are-you,3-Years-Old"
res = strvar.rsplit("-",2)
print(res)
运行结果:
22、*join 按照某字符将列表拼接成字符串(容器类型皆可)
strvar = ['how', 'old', 'are', 'you,3', 'Years', 'Old']
res = "-".join(strvar)
print(res)
运行结果:
23、*relpace 字符串替换
用法:replace(“被替换字符或字符串”,“替换字符或字符串”)
strvar = "how-old-are-you,3-Years-Old"
res = strvar.replace("old","tall")
print(res)
运行结果:
三、字符串的格式化
1、顺序传参
strvar = "how old {},{} Years Old".format("are you",3)
print(strvar)
运行结果:
2、索引传参
根据索引进行传参:
strvar = "how old {1},{0} Years Old".format(3,"are you")
print(strvar)
运行结果:
3、关键字传参
可以根据关键字进行传参:
strvar = "how old {who},{years} Years Old".format(years=3,who="are you")
print(strvar)
运行结果:
4、容器类型数据传参(列表、元组等)
strvar = "how old {0[0]},{1[1]} Years Old".format(["are you","Wangsir","Lisir"],(12,3,29,18,32,50))
print(strvar)
运行结果:
注意:在容器类型数据传参是,不能使用逆向下标。
如果容器类型是字典,直接写键值,不需要加引号:
strvar = "how old {0[friend1]},{1[2]} Years Old".format({"me":"are you","friend1":"Wangsir","friend":"Lisir"},(12,3,29,18,32,50))
print(strvar)
运行结果:
5、format填充字符的使用
(1) > 原字符串居右
(2) < 原字符串居左
(3) ^ 原字符串居中
{who:*^10}
who 关键字参数
* 要填充的字符
^ 原字符串居中
10 总长度: 原字符串长度 + 填充字符串长度
strvar = "how old {who:*>10},{years:#^9} Years Old".format(who="Lisir",years=27)
print(strvar)
运行结果:
6、进制转换等特殊符号的使用( “: d” “: f” “: s”)
(1) :d 整型占位符(要求类型必须为整型)
strvar = "how old Lisir,{:d} Years Old".format(27)
print(strvar)
运行结果:
:2d 占用两位,不够两位拿空格来补,默认居右
可用> < ^来调整位置:
strvar = "how old {:s},{:^6d} Years Old".format("Lisir",27)
print(strvar)
运行结果:
(2):f 浮点型占位符(要求类型必须为浮点型)
strvar = "how old Lisir,{:f} Years Old".format(27.5)
print(strvar)
运行结果:
:.2f 可保留小数点两位
(3): s 字符串占位符(要求数据类型必须为字符串)
strvar = "how old Lisir,{:s} Years Old".format("27")
print(strvar)
运行结果:
(4):,金钱占位符
strvar = "{:,}".format(214151235612)
print(strvar)
运行结果: