字符串的相关操作
(1) 字符串的拼接 +
str1 = "我爱你" str2 = "亲爱的祖国" strvar = str1 + str2 strvar = str1 + "," +str2 print(strvar)
(2) 字符串的重复 *
strvar = "爱我中华\n" res = strvar * 3 print(res)
(3) 字符串的跨行拼接
strvar = "sdfsdfssdfsdjfsjkdfsaudfuiousoadfjklsadf8s98adfsahdfsajkdfhsjkadfh" \ "111222333444" print(strvar)
(4)字符串的索引
# 0 1 2 3 4 5 6 7 8 9 正向索引 strvar = "站起来的人一共是6个" # -10-9-8-7-6-5-4-3-2-1 逆向索引 print(strvar[-6])
(5)字符串的切片: 切片就是截取
"""
语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到字符串的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
(5)[:]或[::] 截取所有字符串
"""
5-(1)[开始索引:] 从开始索引截取到字符串的最后
strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤" res = strvar[5:] print(res)
5-(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
最大值取不到,取到它之前的那个值 strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤" res = strvar[:9] # 8 print(res)
5-(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤" res = strvar[13:15] print(res) res = strvar[-7:-5] print(res)
5-(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤" res = strvar[1:15:2] # 1 3 5 7 9 11 13 print(res) #看皮千一,趣灵 res = strvar[::-1] #从开头到结束; print(res) # -1 -2 -3 -4 -5 -6 -7 -8 -9 ...
5-(5)[:]或[::] 截取所有字符串
res = strvar[:] res = strvar[::] print(res)
字符串相关函数
1)capitalize 字符串首字母大写
strvar = "happy new year" res = strvar.capitalize() print(res)
2)title 每个单词的首字母大写
strvar = "happy new year" # 非字母隔开的单词,首字符大写 strvar = "happy1new*year" res = strvar.title() print(res)
3)upper 将所有字母变成大写
strvar = " aaa BBB cCD" res = strvar.upper() print(res)
4)lower 将所有字母变成小写
strvar = " aaa BBB cCD" res = strvar.lower() print(res)
5)swapcase 大小写互换
strvar = " aaa BBB cCD" res = strvar.swapcase() print(res)
6)len 计算字符串的长度
strvar = " aaa BBB cCD" res = len(strvar) print(res)
7)count 统计字符串中某个元素的数量
strvar = "我爱你亲爱的菇凉"
res = strvar.count("爱")
print(res)
8)find 查找某个字符串第一次出现的索引位置
find("字符",start,end) end最大值取不到,取到它之前的那个数.
strvar = "oh Father this is My Favorite boy"
res = strvar.find("My")
print(res)
# 如果返回-1 , 代表找不到
res = strvar.find("s",0,14)
print(res)
res = strvar.find("b",-5,-1)
print(res)
# *index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
# res = strvar.index("b",0,3) error
# print(res)
9)startswith 判断是否以某个字符或字符串为开头
'''startswith("字符串",start,end)'''
strvar = "oh Father this is My Favorite boy"
res = strvar.startswith("ogg")
print(res)
res = strvar.startswith("Father",3,20)
print(res)
10)endswith 判断是否以某个字符或字符串结尾
'''endswith("字符串",start,end)'''
res = strvar.endswith("boy",-3)
res = strvar.endswith("rite",-12,-4)
print(res)
11)isupper 判断字符串是否都是大写字母
strvar = "GOOD GOOD STUDY" res = strvar.isupper() print(res)
12)islower 判断字符串是否都是小写字母
strvar = "day day up" res = strvar.islower() print(res)
13)isalpha 判断字符串是否由字母和文字组成
strvar = "sdfsdf中文121343" res = strvar.isalpha() print(res)
14)isdigit 检测字符串数是数字组成 接受二进制字节流
strvar = "121212uiu" res = strvar.isdigit() print(res) """ 二进制字节流( bytes ) b开头 b"323" 但是有一定的局限性 只能是ascii编码; 功能用途: 用来传输或者存储用的 字符串:有一个个字符组成 字节流:有一个个字节组成 encode decode 两个函数来对中文进行二进制字节流的转换; """ strvar = b"@123" # strvar = b"你好" b开头的字符串,不能转换中文 print(strvar,type(strvar)) strvar = b"9998877" res = strvar.isdigit() print(res)
15)isdecimal 检测字符串是否以数字组成 必须是纯数字
strvar = "999887789" res = strvar.isdecimal() print(res)
16)split 按某字符将字符串分割成列表(默认字符是空格)
strvar = "you can you up no you no bb"
lst = strvar.split() #默认分隔符是空格
print(lst)
strvar = "you&can&you&up&no&you&no&bb"
lst = strvar.split("&")
# 可以选择分割的次数;
lst = strvar.split("&",3)
print(lst)
# r => right
strvar = "you&can&you&up&no&you&no&bb"
lst = strvar.rsplit("&")
lst = strvar.rsplit("&",2)
print(lst)
17)''.join 按某字符将列表拼接成字符串(容器类型都可)
lst = ['you', 'can', 'you', 'up', 'no', 'you', 'no', 'bb'] # join 前面是以什么样的符号进行拼接字符串; strvar = '^'.join(lst) print(strvar)
18)center 填充字符串,原字符居中 (默认填充空格)
strvar = "真好" # 10这个数字代表的是总长度 元字符长度 + 填充的长度= 10 res = strvar.center(10) res = strvar.center(10,"@") print(res)
19)strip 默认去掉首尾两边的空白符 (\r \n \t 空格 )
strvar = " 大家好 ? "
res = strvar.strip()
print(res)
strvar = "@@学习@"
res = strvar.strip("@")
print(res)
20)replace() 替换字符串
strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有")
# 可以选择替换的次数
res = strvar.replace("有没有","真没有",2)
print(res)
总结:
*capitalize 字符串首字母大写 *title 每个单词的首字母大写 *upper 将所有字母变成大写 *lower 将所有字母变成小写 *swapcase 大小写互换 *len 计算字符串的长度 *count 统计字符串中某个元素的数量 *find 查找某个字符串第一次出现的索引位置 *index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错 *startswith 判断是否以某个字符或字符串为开头 *endswith 判断是否以某个字符或字符串结尾
*isupper 判断字符串是否都是大写字母 *islower 判断字符串是否都是小写字母 #istitle 判断字符串是否每个单词都首字母大写 #isalnum 判断字符串是否是由数字、字母、汉字组成 *isalpha 判断字符串是否由字母和文字组成 *isdigit 检测字符串数是数字组成 接受二进制字节流 *isdecimal 检测字符串是否以数字组成 必须是纯数字 #isnumeric 检测字符串是否以数字组成 接受中文"四" #isspace 判断字符串是否由空白符组成
*split 按某字符将字符串分割成列表(默认字符是空格) *join 按某字符将列表拼接成字符串(容器类型都可) #splitlines 按换行来进行切分(\n) #zfill 填充字符串(默认填充0,原字符串右对齐) #ljust 填充字符串,原字符居左 (默认填充空格) #rjust 填充字符串,原字符居右 (默认填充空格) *center 填充字符串,原字符居中 (默认填充空格) *strip 默认去掉首尾两边的空白符 #rstrip 去掉右边某个字符 #lstrip 去掉左边某个字符
*replace()
功能: 把字符串的旧字符换成新字符
格式: 字符串.replace('旧字符','新字符'[, 限制替换的次数])
返回值: 替换之后的字符串
#maketrans translate 是一对
maketrans()
功能: 制作用于字符串替换的映射表
格式: 字符串.maketrans('查找字符','替换字符')两个字符必须长度相等
返回值: 字典
translate()
功能: 进行字符串替换操作
格式: 字符串.translate(maketrans返回的字典)
返回值: 替换之后的字符串