day06-Python运维开发基础(字符串格式化与相关的函数、列表相关的操作)
1. 字符串相关的操作与格式化
# ### 字符串相关操作
# (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. 字符串相关的函数
# ### 字符串的相关函数
# *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. 列表相关操作与函数
# ### 列表相关操作 +
# (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
day06-Python运维开发基础(字符串格式化与相关的函数、列表相关的操作)的更多相关文章
- Python运维开发基础05-语法基础【转】
上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python # -*- coding:utf-8 -*- # author:Mr.chen import os,time Tag = ...
- Python运维开发基础03-语法基础 【转】
上节作业回顾(讲解+温习60分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen #只用变量和字符串+循环实现“用户登陆 ...
- Python运维开发基础02-语法基础【转】
上节作业回顾(讲解+温习60分钟) #!/bin/bash #user login User="yunjisuan" Passwd="666666" User2 ...
- Python运维开发基础09-函数基础【转】
上节作业回顾 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 实现简单的shell命令sed的替换功能 import ...
- Python运维开发基础08-文件基础【转】
一,文件的其他打开模式 "+"表示可以同时读写某个文件: r+,可读写文件(可读:可写:可追加) w+,写读(不常用) a+,同a(不常用 "U"表示在读取时, ...
- Python运维开发基础07-文件基础【转】
一,文件的基础操作 对文件操作的流程 [x] :打开文件,得到文件句柄并赋值给一个变量 [x] :通过句柄对文件进行操作 [x] :关闭文件 创建初始操作模板文件 [root@localhost sc ...
- Python运维开发基础06-语法基础【转】
上节作业回顾 (讲解+温习120分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 添加商家入口和用户入口并实现物 ...
- Python运维开发基础04-语法基础【转】
上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 仅用列表+循环实现“简单的购物车程 ...
- Python运维开发基础01-语法基础【转】
开篇导语 整个Python运维开发教学采用的是最新的3.5.2版,当遇到2.x和3.x版本的不同点时,会采取演示的方式,让同学们了解. 教学预计分为四大部分,Python开发基础,Python开发进阶 ...
随机推荐
- php学习 打星星
<?php // 输入几行 $k=9; // 打孔三角 for($i=1;$i<=$k;$i++){ if($i==$k){ for($n=1;$n<=$k*2-1;$n++){ e ...
- How2J学习java-1、环境配置
JDK环境变量配置分下载,配置,验证三个步骤. 一.首先需要到JDK下载网站下载所需的JDK版本可根据更新来定.主流的开发工具Idear下载. 1.首先看配置成功后的效果 点WIN键->运行(或 ...
- java8新特性1:lambda表达式和函数式接口
1.lambda的介绍: 1.1.为什么java语言需要引入lambda表达式? java语言诞生于1995年,历史时间已经相对较长了.在其后的各种新型编程语言中,都有着lambda表达式的内容,并且 ...
- 「模板」可持久化 HFQ-Treap
老师用的是静态数组的写法,开了很多数组- 其实个人更倾向于 struct 或者用 class 封装起来. 但是鉴于太难打 好吧,是我懒得打. 然后就借鉴了老师的模板,写出了属于自己的 压行 风格. 代 ...
- java 多线程小记
/*java里面实现多线程一般有两种方式 * 1,继承Thread类,实现run方法 * 2,实现Runnable接口,实现run方法 * start方法可以新建一个线程,创建多线程必须调用此方法 * ...
- c++特有的bool变量和用const定义变量
写再最前面:摘录于柳神的笔记: bool 变量有两个值, false 和 true ,以前⽤C语⾔的时候都是⽤ int 的 0 和 1 表示 false 和 true 的,现在C++⾥⾯引⼊了这个叫做 ...
- 【PAT甲级】1010 Radix (25 分)(二分)
题意: 输入两个数可能包含小写字母,1或者2,进制大小.第三个数为代表第一个数是第四个数进制的,求第二个数等于第一个数时进制的大小,不可能则输出Impossible,第三个数为2代表第二个数是第四个数 ...
- ‘.vue’文件(非常重要)
‘.vue’文件 Vue自定义了一种后缀名名字为.vue文件,它将html, js, css 整合成一个文件,和里面 template script style三个区别分别依次对应. 1 2 3 4 ...
- 解题报告:luogu P1433 吃奶酪
题目链接:P1433 吃奶酪 我感觉可以改成:[模板]TSP问题(商旅问题) 了. 爆搜\(T\)一个点,考虑状压\(dp\)(还是爆搜). 我们用\(dp[i][j]\)表示现在是\(i\)状态,站 ...
- 设计模式课程 设计模式精讲 16-2,3 代理模式Coding-静态代理-1
1 代码演练 1.1 代码演练1(静态代理之分库操作) 1 代码演练 1.1 代码演练1(静态代理之分库操作) 需求: 订单管理,模拟前置后置方法,模拟分库管理 重点: 重点看订单静态代理,动态数据源 ...