day06-Python运维开发基础(字符串格式化与相关的函数、列表相关的操作)
1. 字符串相关的操作与格式化
# ### 字符串相关操作 # (1)字符串的拼接 + var1 = "亲爱的," var2 = "男孩" res = var1 + var2 print(res) # (2)字符串的重复 * var = "重要的事情说三遍" res = var * 3 print(res) # (3)字符串跨行拼接 \ strvar = "sdfsdfsdfkjjksssssssssssssssssssssssssssssssssssssssssssss"\ "111223344" 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("789")) # :, 金钱占位符 strvar = "{:,}".format(1234567) print(strvar) # 综合案例 strvar= "{:s} 开了{:.1f}元工资,买了{:d}个布加迪威龙".format("郭少东",9.9,10) print(strvar)
2. 字符串相关的函数
# ### 字符串的相关函数 # *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 = "1234566" res = strvar.isdigit() print(res) """ 二进制字节流(bytes) : 用来把数据进行传输和存储 表达方式: b"字符串" 里面的字符 必须是ascii编码集 """ res = b"123" print(res,type(res)) res2 = res.isdigit() print(res2) # res3 = b"中文" 错误 # *isdecimal 检测字符串是否以数字组成 必须是纯数字 res = "998887" 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. 列表相关操作与函数
# ### 列表相关操作 + # (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 = "123" 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