5. 字符串的相关操作和函数

村里唯一的运维 / 2023-05-09 / 原文

一. 相关操作

1.1 字符串的拼接 +

var1 = "你好,"
var2 = "世界"
res = var1 + var2
print(res)

运行结果
image.png

1.2. 字符串的重复 *

res1 = "=" * 3
print(res1)

运行结果
image.png

1.3. 字符串的跨行拼接 \

strvar = "sadfsdafsdfklskldfjklsadfjklsjdklfsjkladfjksahdfjkshakdfhskladhfj" \
"你好你好你好"
print(strvar)

运行结果
image.png

1.4. 字符串的索引

#         0 1 2 3 4 5 6 7 8 9  正向索引
strvar = "黑夜给了我黑色的眼睛"
#         -10-9-8-7-6-5-4-3-2-1  逆袭索引
print(strvar[-2])
print(strvar[8])

1.5. 字符串的切片(切片就是截取的意思)

切片不改变类型,哪怕是没有切到

语法 => 字符串[::]  完整格式:[开始索引:结束索引:间隔值]
	(1)[开始索引:]  从开始索引截取到字符串的最后
	(2)[:结束索引]  从开头截取到结束索引之前(结束索引-1)
	(3)[开始索引:结束索引]  从开始索引截取到结束索引之前(结束索引-1)
	(4)[开始索引:结束索引:间隔值]  从开始索引截取到结束索引之前按照指定的间隔截取字符
	(5)[:]或[::]  截取所有字符串

strvar = "我爱你亲爱的姑凉,见到你我就心慌,魂不守舍,魂牵梦绕"

[开始索引:] 从开始索引截取到字符串的最后

res = strvar[3:]
print(res)

运行结果
image.png

[:结束索引] 从开头截取到结束索引之前(结束索引-1)

res = strvar[:8]
print(res)

运行结果
image.png

[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)

res = strvar[9:12]
print(res)

运行结果
image.png

[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符

res = strvar[1:10:2]
print(res)

运行结果
image.png

开始和结束索引都不写,默认从开始截取到最后

res = strvar[::]
print(res)

运行结果
image.png

[:]或[::] 截取所有字符串

res = strvar[:]
print(res)

运行结果
image.png

二. 字符串的相关函数

2.1 capitalize 字符串首字母大写

strvar = "we are FamilY"
res = strvar.capitalize()
print(res)

运行结果
image.png

2.2 upper 将所有字母变成大写

strvar = "we are FamilY"
res = strvar.upper()
print(res)

运行结果
image.png

2.3 lower 将所有字母变成小写

strvar = "we are FamilY"
res = strvar.lower()
print(res)

运行结果
image.png

2.4 swapcase 大小写互换

strvar = "we are FamilY"
res = strvar.swapcase()
print(res)

运行结果
image.png

2.5 len 计算字符串的长度

strvar = "we are FamilY"
res = len(strvar)
print(res)

运行结果
image.png

2.6 count 统计字符串中某个元素的数量

strvar = "we are FamilY"
res = strvar.count("a")
print(res)

运行结果
image.png

2.7 find 查找某个字符串第一次出现的索引位置

strvar = "oh Father this is my Favorite girl"
res = strvar.find("F")
res1 = strvar.find("Father") #还是按照F所在的位置找出索引
res2 = strvar.find("F",4)    #第4个F出现位置索引
res3 = strvar.find("my",19,21) #从第19号索引开始(包含19,不包含20)

index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错

2.8 startswith 判断是否以某个字符或字符串为开头

strvar = "oh Father this is my Favorite girl"
res  =strvar.startswith("1232oh")
res  =strvar.startswith("is",15) #表示从第15号索引开始是不是以is开头
print(res)

2.9 endswith 判断是否以某个字符或字符串结尾

strvar = "oh Father this is my Favorite girl"
res = strvar.endswith("girl")
# this
res = strvar.endswith("is",10,14)
print(res)

2.10 isalpha 判断字符串是否由字母和文字组成

strvar = "sdfsdfs你好"
res = strvar.isalpha()
print(res)

2.11 split 按某字符将字符串分割成列表(默认字符是空格)

返回的是一个列表
split 从左向右分割
split(按照什么分割的字符,可选择分割几次)

strvar = "you can you up no can no bb"
res = strvar.split()
print(res)

运行结果
image.png

指定分隔符

strvar = "you,can,you,up,no,can,no,bb"
res = strvar.split(",")

运行结果
image.png

指定分割次数

strvar = "you,can,you,up,no,can,no,bb"
res = strvar.split(",",4) # 可以选择分割的次数.
print(res)

运行结果
image.png

2.12 rsplit 从右向左分割,用法和split一样.

strvar = "you-can-you-up-no-can-no  bb"
res = strvar.rsplit("-",2)
print(res)

运行结果
image.png

2.13 join 按某字符将列表拼接成字符串(容器类型都可)

字符.join(容器类型数据)

lst = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
res = '&'.join(lst)
print(res)

运行结果
image.png

2.14 center 填充字符串,原字符居中 (默认填充空格)

strvar = "你号啊"
res = strvar.center(5)
print(res)
字符串 5 :填充的符号加上原字符 一共长度是5

运行结果
image.png

2.15 strip 默认去掉首尾两边的空白符

strvar = "               123             "
res = strvar.strip()
print(res)

image.png

2.16 replace()

功能:   把字符串的旧字符换成新字符
格式:   字符串.replace('旧字符','新字符'[, 限制替换的次数])
返回值: 替换之后的字符串

示例

strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有")
print(res)

image.png
指定替换次数

strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有",2)
print(res)

image.png