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)
字符串 format 填充符号的使用 示例代码

 

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

posted on 2020-01-02 19:14  tengq  阅读(256)  评论(0编辑  收藏  举报

导航