day06-Python运维开发基础(字符串格式化与相关的函数、列表相关的操作)

时间:2023-03-09 07:33:39
day06-Python运维开发基础(字符串格式化与相关的函数、列表相关的操作)

1. 字符串相关的操作与格式化

day06-Python运维开发基础(字符串格式化与相关的函数、列表相关的操作)

# ### 字符串相关操作
# (1)字符串的拼接 +
var1 = "亲爱的,"
var2 = "男孩"
res = var1 + var2
print(res) # (2)字符串的重复 *
var = "重要的事情说三遍"
res = var * 3
print(res) # (3)字符串跨行拼接 \
strvar = "sdfsdfsdfkjjksssssssssssssssssssssssssssssssssssssssssssss"\
""
print(strvar) # (4)字符串的索引
# 0 1 2 3 4
strvar = "天气转冷了"
# -5 -4-3-2-1
res = strvar[3]
res = strvar[-2]
print(res) # (5)字符串的切片: (截取)
"""
语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到字符串的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
(5)[:]或[::] 截取所有字符串
"""
strvar = "为中华崛起而读书,我们还年轻,毕竟18岁"
# (1)[开始索引:] 从开始索引截取到字符串的最后
res = strvar[3:]
print(res) # (2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
res = strvar[:7]
print(res) # (3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
res = strvar[11:14]
print(res) # (4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
res = strvar[::2]
# 0 2 4 6 8 10 12 14 ...... 正向
res = strvar[::-1]
# -1 -2 -3 -4 -5 -6 ... 逆向
print(res) # (5)[:]或[::] 截取所有字符串
res = strvar[:]
res = strvar[::]
print(res)

字符串相关的操作 示例代码

# ### 字符串的格式化format

# (1)顺序传参
strvar = "{}向{}开了一枪,饮弹而亡".format("潘智慧","李诗韵")
print(strvar) # (2)索引传参
strvar = "{1}给{0}一个大大的拥抱".format("续送课","黄俊伟")
print(strvar) # (3)关键字传参
strvar = "{who2}向{who1}进行扫射,嘴里大喊鸭子给给".format(who1="陈佳琪",who2="王天赐")
print(strvar) # (4)容器类型数据(列表或元组)传参
# (1)
strvar = "{0[1]}给{1[2]}一个飞吻,鼻血直冒三万多尺".format(["林荫站","林明辉","林明亮"],("罗宗源","钟志红","皮得意"))
print(strvar) # (2)
strvar = "{group1[1]}给{group2[2]}一个飞吻,鼻血直冒三万多尺".format(group1 = ["林荫站","林明辉","林明亮"],group2 = ("罗宗源","钟志红","皮得意",1,2,3,4,5,6,7,8))
print(strvar) # (3) 如果是字典,在获取值得时候,键的两边不要套引号 => 针对于format格式化字符串场景使用;
strvar = "{group1[1]}给{group2[b]}一个飞吻,鼻血直冒三万多尺".format(group1 = ["林荫站","林明辉","林明亮"],group2 = {"a":"刘守乱","b":"黄乐锡"})
print(strvar)

字符串的格式化 示例代码

# (5)format的填充符号的使用( ^ > < )
"""
^ 原字符串居中
> 原字符串居右
< 原字符串局左 {who:*^10} who : 要填充的字符
* : 要填充的符号
^ : 要填充的方向
10 : 要填充的总长度 符号个数 + 原字符串个数 = 10 * 如果不写填充的符号,默认填充的是空格
""" strvar = "{who:*^10}在{where:@>10}扎疫苗,感觉{feel:!<10}".format(who="朱京城",where="长春长生科技公司",feel="萌萌哒")
print(strvar) # (6)进制转换等特殊符号的使用( :d :f :s :, ) [强制必须是对应类型]
# :d 整型占位符
strvar = "吴荣泽有{:d}女友".format(7)
print(strvar) # :2d 占用两位
strvar = "{:d}*{:d}={:3d}".format(5,6,5*1)
print(strvar) # :<3d 让原字符串居左 :^3d 让原字符串居中
strvar = "{:d}*{:d}={:<3d}".format(5,6,5*1)
print(strvar) # :f 浮点型占位符
strvar = "杨麻子给女友买了很多芝麻,花了{:f}元".format(4.67)
print(strvar) # :.2f 浮点型占位符
strvar = "杨麻子给女友买了很多芝麻,花了{:.2f}元".format(4.67)
print(strvar) # :s 字符串占位符
strvar = "{:s}"
print(strvar.format("天气冷了,多穿衣服"))
print(strvar.format("")) # :, 金钱占位符
strvar = "{:,}".format(1234567)
print(strvar) # 综合案例
strvar= "{:s} 开了{:.1f}元工资,买了{:d}个布加迪威龙".format("郭少东",9.9,10)
print(strvar)

字符串 format 填充符号的使用 示例代码

2. 字符串相关的函数

day06-Python运维开发基础(字符串格式化与相关的函数、列表相关的操作)

# ### 字符串的相关函数
# *capitalize 字符串首字母大写
strvar = "happy new year"
res = strvar.capitalize()
print(res) # *title 每个单词的首字母大写 (非字母隔开,首字符都大写)
strvar = "happy new year"
res = strvar.title()
res = "sdf1234sdf开了接口接口56".title()
print(res) # *upper 将所有字母变成大写
strvar = "sdfs opop xiaomi"
print( strvar.upper() ) # *lower 将所有字母变成小写
strvar = "SDFS OPOP XIAOMI"
print( strvar.lower() ) # swapcase 大小写互换
strvar = "SDfs OPOP XIAOMI"
print( strvar.swapcase() ) # *len 计算字符串的长度
strvar = "abcd123"
print( len(strvar) ) # *count 统计字符串中某个元素的数量
strvar = "我爱你亲爱的老爸"
res = strvar.count("爱")
print(res) # *find 查找某个字符串第一次出现的索引位置 (推荐)
"""find("要查找的字符串",开始位置,结束位置)"""
strvar = "oh Father this is my favorite boy"
res = strvar.find("t")
res = strvar.find("t",6)
res = strvar.find("my",0,20)
# 如果返回的是-1 , 代表没有
# res = strvar.find("my",0,4)
print(res) # *index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
# res = strvar.index("my",0,4) # *startswith 判断是否以某个字符或字符串为开头
# startswith,endswith("字符串",开始索引,结束索引)
strvar = "oh Father this is my favorite boy"
res = strvar.startswith("oh")
res = strvar.startswith("Father",3)
res = strvar.startswith("ther",5,10)
print(res) # *endswith 判断是否以某个字符或字符串结尾
res = strvar.endswith("boy")
res = strvar.endswith("rite",-12,-4) # -12 ~ -5 favorite
print(res) # *isupper 判断字符串是否都是大写字母
strvar = "XBOYWW"
res = strvar.isupper()
print(res) # *islower 判断字符串是否都是小写字母
strvar = "xboywW"
res = strvar.islower()
print(res) # *isalpha 判断字符串是否由字母和文字组成
strvar = "sdfsd你好"
res = strvar.isalpha()
print(res) # *isdigit 检测字符串数是数字组成 接受二进制字节流
strvar = ""
res = strvar.isdigit()
print(res) """
二进制字节流(bytes) : 用来把数据进行传输和存储
表达方式: b"字符串"
里面的字符 必须是ascii编码集
"""
res = b""
print(res,type(res))
res2 = res.isdigit()
print(res2)
# res3 = b"中文" 错误 # *isdecimal 检测字符串是否以数字组成 必须是纯数字
res = ""
res2 = res.isdecimal()
print(res2) # 重点记住
# *split 按某字符将字符串分割成列表(默认字符是空格)
strvar = "you can you up no can no bb"
res = strvar.split()
strvar = "you,can,you,up,no,can,no,bb"
# 按照逗号进行分割
res = strvar.split(",")
print(res)
# 按照逗号进行分割,分割2个 (从左向右分割)
res = strvar.split(",",2)
print(res)
# 按照逗号进行分割,分割2个 (从右向左分割)
res = strvar.rsplit(",",2) # r => right
print(res) # *join 按某字符将列表拼接成字符串(容器类型都可)
lst = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
strvar = "-".join(lst)
print(strvar,type(strvar)) # *center 填充字符串,原字符居中 (默认填充空格)
strvar = "刘德华"
strnew = strvar.center(10) # 10 是字符串的总长度 = 原字符串长度 + 填充字符长度
strnew = strvar.center(10,"@")
print(strnew) # *strip 默认去掉首尾两边的空白符 (\r \n \t 空格)
strvar = " 神秘男孩 "
print(strvar)
res = strvar.strip()
print(res)
strvar = "@@@@abc@@@"
res = strvar.strip("@")
print(res) # replace 把字符串的旧字符换成新字符
strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有")
# 可以选择替换的次数
res = strvar.replace("有没有","真没有",1)
print(res)

字符串相关函数操作 示例代码

3. 列表相关操作与函数

day06-Python运维开发基础(字符串格式化与相关的函数、列表相关的操作)

# ### 列表相关操作 +
# (1)列表的拼接 (同元组) +
lst1 = ["邹永玲","刘守乱","朱京城","郭少东","桂晓斌"]
lst2 = ["好价位"]
res = lst1 + lst2
print(res) # (2)列表的重复 (同元组) *
lst = ["吴荣泽","杨麻子"]
res = lst * 3
print(res) # (3)列表的切片 (同元组)
"""
语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到列表的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
(5)[:]或[::] 截取所有列表
"""
lst = ["邹永玲","刘守乱","朱京城","郭少东","桂晓斌","严职员","张晓东","中亚曦"]
# 1[开始索引:] 从开始索引截取到列表的最后
res = lst[2:]
print(res) # 2[:结束索引] 从开头截取到结束索引之前(结束索引-1)
res = lst[:3]
print(res) # 3[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
res = lst[4:6]
print(res) # 4[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
res = lst[::3]
# 0 3 6 9 12 ...
res = lst[::-2]
#-1 -3 -5 -7
print(res) # 5[:]或[::] 截取所有列表
res = lst[:]
res = lst[::]
print(res) # (4)列表的获取 (同元组)
# 0 1 2 3
lst = [1,2,3,4]
# -4-3-2-1
res = lst[-1]
res = lst[3]
print(res) # (5)列表的修改 ( 可切片 )
lst = ["邹永玲","刘守乱","朱京城","郭少东","桂晓斌","严职员","张晓东","中亚曦"]
lst[1] = "罗启云"
print(lst) # 1用切片进行修改(修改的是一段值,没有个数上的要求)
# lst[2:4] = ("a","b","c")
# print(lst)
# 2用带有间隔值的切片进行修改(截取几个,修改几个,元素个数要对应)
lst[2:6:2] = ["d","e"]
print(lst) # (6)列表的删除 ( 可切片 ) del
lst = ["郭少东","桂晓斌","严职员","张晓东","中亚曦"]
# 删除一个
# del lst[-2]
# print(lst) # 利用切片进行删除
# del lst[1:4]
# del lst[1:4:2]# 1 3
print(lst) # 注意点:错误写法
"""
res = lst[1:4]
del res # 删除的是变量,不是列表
print(lst)
"""

列表相关常用操作 示例代码

# ### 列表相关函数
listvar = ["宗永玲","刘守乱","黄乐锡","卓冰洁"]
# 增
# (1) append 向列表的末尾添加新的元素
listvar.append("常远")
print(listvar) # (2) insert 在指定索引之前插入元素
listvar.insert(0,"郭少东")
print(listvar) # (3) extend 迭代追加所有元素
'''可迭代性数据:(容器类型数据 range对象 迭代器)'''
# lst = ["a","b","c"]
# listvar.extend(lst)
strvar = ""
listvar.extend(strvar)
print(listvar) # 删
# (1) pop 通过指定索引删除元素,若没有索引移除最后那个 (推荐)
listvar = ["宗永玲","刘守乱","黄乐锡","卓冰洁"]
# 指定索引
# res = listvar.pop(2)
# print(listvar)
# print(res) # 不指定索引,默认删除最后一个
res = listvar.pop()
print(listvar)
print(res) # (2) remove 通过给予的值来删除,如果多个相同元素,默认删除第一个
listvar = ["宗永玲","刘守乱","黄乐锡","卓冰洁"]
res = listvar.remove("刘守乱")
print(res)
print(listvar) # (3) clear 清空列表
listvar.clear()
print(listvar) # 列表其他操作
# index 获取某个值在列表中的索引,找不到直接报错
listvar = ["宗永玲","刘守乱","黄乐锡","卓冰洁"]
res = listvar.index("黄乐锡")
res = listvar.index("黄乐锡",1,4)# 从下标1开始找 , 找到下标3
print(res) # count 计算某个元素出现的次数
listvar = ["宗永玲","刘守乱","黄乐锡","卓冰洁","黄乐锡","黄乐锡"]
res = listvar.count("黄乐锡")
print(res) # sort 列表排序 (默认从小到大排序)
listvar = [-1,3,89,-100]
listvar.sort()
print(listvar) # 从大到小排序
listvar.sort(reverse=True)
print(listvar) # 对字母进行排序 (字母一位一位比较,如果当前相同,在比较第二位)
listvar = ["james","kobe","caixukun","yao","kuli","daivs"]
listvar.sort()
print(listvar) # 中文可以排序,无规律可循
listvar = ["蔡徐坤","杀马特","葬爱家族","黄子稻"]
listvar.sort()
print(listvar) # reverse() 列表反转操作
listvar = [1,2,False,99,"蔡徐坤"]
listvar.reverse()
print(listvar)

列表相关函数操作 示例代码

day06