字符串的相关操作
(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返回的字典)
返回值: 替换之后的字符串