python之容器类型数据的一系列操作之字符串
字符串相关操作:
(1)字符串的拼接
(2)字符串的重复
(3)字符串跨行拼接
(4)字符串的索引
(5)字符串的切片:
语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到字符串的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
(5)[:]或[::] 截取所有字符串
字符串的格式化format
(1)顺序传参
(2)索引传参
(3)关键字传参
(4)容器类型数据(列表或元祖)传参
(5)format的填充符号的使用( ^ > < )
(6)进制转换等特殊符号的使用( :d :f :s :, )
字符串相关函数需要背记的
函数名 | 含义 |
---|---|
capitalize() | 字符串首字母大写 |
title() | 每个单词的首字母大写 |
upper() | 将所有字母变成大写 |
lower() | 将所有字母变成小写 |
swapcase() | 将字符串中大小写字母互换 |
len() | 计算字符串长度 |
count() | 统计字符串中某个元素的数量 |
find() | 查找某个字符第一次出现位置 |
inde() | 与find功能相同,fingd找不到返回-1,index找不到直接报错 |
startwith() | 判断是否以某个字符或字符串为开头 |
endswith() | 判断是否以某个字符或字符串结尾 |
isalpha() | 判断字符串是否使用字母和文字组成 |
isdigit() | 检测字符串是否是纯数字组成 |
isdecimal() | 检测字符串是否是以数字组成,必须是纯数字 |
*join() | 按某字符将列表拼接成字符串(默认字符是空格) |
center() | 填充字符串,原字符居中默认填充空格 |
strip() | 默认去掉首位两边的的空白符 |
replace() | 将字符串的旧字符替换成新字符 |
这些需要了解的
函数名 | 含义 |
---|---|
isupper | 判断字符串是否都是大写字母 |
islower | 判断字符串是否都是小写字母 |
istitle | 判断字符串是否 |
isalnum() | 判断字符串是否是由数字、字母、汉字构成 |
isnumeri | 检测字符串是否以数字组成,接受中文四 |
isspace | 判断字符串是否由空白符组成 |
splitlines | 按换行来切分 |
字符串的相关操作
字符串的拼接(+)
strvar1 = "我爱啃"
strvar2 = "大猪蹄子"
res = strvar1 + strvar2
strvar1 += strvar2 # strvar1 = strvar1 + strvar2
print(strvar1)
(2)字符串跨行拼接(\)
strvar = "klasdjflkjsadklfjaskldjfklasjdklfjaskldfjklasdjfklsdjflkajs;dlkfjal;ksdjflkasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfdfl"\
"kl09q2384092830482309riowsrfiej"
print(strvar)
字符串的索引
# 0 1 2 3 4 5
strvar = "林品如真漂亮"
# -6-5-4-3-2-1
print(strvar[2])
print(strvar[-4])
‘’’(5)字符串的切片: 所谓的切片就是截图
语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到字符串的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
(5)[:]或[::] 截取所有字符串’’’
(1)[开始索引:] 从开始索引截取到字符串的最后
strvar = "我爱你亲爱的菇凉,见到你我就心慌,你那美丽的大眼睛,让我魂牵梦绕"
res = strvar[2:]
res = strvar[-3:]
print(res)
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
#高位取不到
res = strvar[:8] # 最大值到7
print(res)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
res = strvar[9:12] # 从索引9截取到索引11 高位取不到
print(res)
(4)[开始索引:结束索引:间隔值]
从开始索引截取到结束索引之前按照指定的间隔截取字符
正向截取
把所有的索引算出来,然后依次比对拿值
strvar = "我爱你亲爱的菇凉,见到你我就心慌,你那美丽的大眼睛,让我魂牵梦绕"
0 2 4 6 8 10 12 14
我你爱 菇 , 到 我 心
计算方法就是先取0,再取0+2=2,再取2+2。以此类推取到最大位高位取不到
res = strvar[0:16:2]
反向截取
"""
res = strvar[::-1]
-1 -2 -3 -4 ...绕 梦 牵 魂
res = strvar[::-2]
-1 -3 -5 -7 -9 ....
"""
无论是正向还是反向就是左侧的数字通过step能够到达右边()如果没有像是[1:6]默认是+1的
res = strvar[0:16:2]。这个,0能够通过不断+2变成16
res = strvar[-9:3:-2]。这个就不行,因为-9没有办法通过+(-2)即-2变成-3
res = strvar[-1:-9:-2]。这个就行,因为-1可以通过不断-2到达-9的位置
#(5)[:]或[::] 截取所有字符串
res = strvar[:]
res2 = strvar[::]
print(res)
print(res2)
注意的地方:目的是要截取到值
strvar = "12345"
res = strvar[-5:0] # 取不到值
print(res)
字符串的格式化 format
(1)顺序传参
(2)索引传参
(3)关键字传参
(4)容器类型数据(列表或元祖)传参
(1)顺序传参 {}是占位符(emmm可以理解为字符串比较多所以用括号括起来)
strvar = "{}向{}来了一个大大的拥抱"
res = strvar.format("安妮的熊","法外狂徒")
print(res)
(2)索引传参
strvar = "{1}向{0}开了一枪,饮蛋儿亡"
res = strvar.format("烬","派克")
print(res)
(3)关键字传参
strvar = "{who2}向{who1}扫射,令人闻风丧胆"
res = strvar.format(who1="狂野大嫖客",who2="VN")
print(res)
(4)容器类型数据:列表按索引传参
strvar = "{1[1]}向{0[0]}泡了一个眉眼,让人魂不守舍,鼻血直冒三千多尺"
res = strvar.format(["赵信,"泰达米尔"],("艾希","阿狸"))
print(res)
在format字符串格式化结构中 如果此容器类型数据是字典 通过键取值的时候不要加引号
strvar = {group1[1]}向{group2[赏金猎人]}抛了一个眉眼,让人魂不守舍,鼻血直冒三万多尺"
res = strvar.format(group1 = ["赵信","无极剑圣"],group2 = {"九尾妖狐":"阿狸","赏金猎人":"莎拉"})
print(res)
#请注意占位符中赏金并没有引号
(5) format 的填充符号的使用( ^ 、> 、< )
^ 原字符串居中
> 原字符串居右
< 原字符串居左{who:*>10}
who : 关键字参数
* : 要填充的字符
> : 原字符串填充的方向
10 : 总长度10 = 原字符串长度 + 填充字符的长度
strvar = "{who:*^10} 在成都实验小学{something:>>10},感觉{feel:!<10}"
res = strvar.format(who = "成都市长",something="吃了一顿饭",feel="要上天哦")
print(res)
(6)进制转换等特殊符号的使用( :d :f ? :, )
:d 整型占位符
strvar = "王大锤买了{:d}个跑车,酷炫的要死"
# 可以通过 < > ^ 改变方向
res = strvar.format(7)
print(res)
strvar = "我买了{:^3d}个跑车,布加迪威龙玩具车"
res = strvar.format(9)
print(res)
:f 浮点型占位符 :.2f 代表保留两位小数 可以四舍五入
strvar = "提莫身高{:.2f}"
res = strvar.format(1.719)
print(res)
字符串占位符
strvar = "{:s}"
res = strvar.format("有趣的灵魂200多斤")
print(res)
#:, 金钱占位符
strvar = "{:,}"
res = strvar.format(1234567)
print(res)
#英文金钱占位符,3位加个逗号从右向左
综合例子
strvar = "{:s}开工资了,发了{:.2f}钱,买了{:<3d}个降噪耳机"
res = strvar.format("liuxing",999.919,19)
print(res)
字符串相关函数(方法)
使用字符串当中的某一个方法 格式:“字符串”.方法()
*capitalize 字符串首字母大写
strvar = "this is my boy"
res = strvar.capitalize()
print(res)
*title 每个单词的首字母大写 (非字母隔开的单词)
strvar = "this is999my***girl"
res = strvar.title()
print(res)
*upper 将所有字母变成大写
strvar = "aa bbb CCC"
res = strvar.upper()
print(res)
*swapcase 大小写互换
strvar = "aa bbb CCC"
res = strvar.swapcase()
print(res)
*count 统计字符串中某个元素的数量
strvar = "我好帅哦我好帅哦哦"
res = strvar.count("哦")
print(res)
*find 查找某个字符串第一次出现的索引位置 (如果找不到返回-1)
'''find("字符串",start,end) 可以划定范围查找'''
strvar = "Oh Father this is mY Favorite Boy"
res = strvar.find("Father")
res = strvar.find("F",4)
res = strvar.find("t",6,11) #正向索引
res = strvar.find("B",-4,-1)#反向索引
#说是反向索引其实只是索引从-4变成-1顺序还是从左向右。别被这个反向迷惑了。
print(res)
*index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
strvar = "Oh Father this is mY Favorite Boy
# res = strvar.index("abc") error 找不到
print(res)
*startswith 判断是否以某个字符或字符串为开头
'''startswith("字符串",start,end)'''
strvar = "Oh Father this is mY Favorite Boy
res = strvar.startswith("O")
res = strvar.startswith("Father",4)
print(res)
*endswith 判断是否以某个字符或字符串结尾
res = strvar.endswith("y",-3)
res = strvar.endswith("Bo",-5,-2)
print(res)
*split 按某字符将字符串分割成列表(默认字符是空格)split 可以选择第二个参数,用来控制分割几次
strvar = "you can you up no can no bb"
res = strvar.split()
print(res)strvar = "you-can-you-up-no-can-no-bb"
# split 方向从左向右
res = strvar.split("-",1)
print(res)# split 方向从右向左 r => right
res = strvar.rsplit("-",2)
print(res)
*join 按某字符将列表拼接成字符串(容器类型都可)
listvar = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
res = "^".join(listvar)
print(res)
*replace 替换字符串(可选择替换的次数)
'''字符串.replace(就字符串,新字符串,[替换的次数])'''
strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有")
print(res)
res = strvar.replace("有没有","真没有",1)
print(res)
is 开头的函数 都是返回True 或者 False
*isalnum 判断字符串是否是由数字、字母、汉字组成
print(111)
strvar = "????666888ismysupergirlさしす"
print(strvar.isalnum())
*isdigit 检测字符串是数字组成 接受二进制字节流
"""
# 二进制的字节流 bytes => b" " Byte是字节
字节流用来做网络传输或存储用的
b开头修饰的字符串必须是ascii编码中的字符
例如: b"12345"
b"陈梦吉大帅锅"错误 中文如果想要转化成字节流需要使用encode和decode
"""
strvar = b"123456"
res = strvar.isdigit()
print(res)
*isdecimal 检测字符串是否以数字组成 必须是纯数字
print("<===>")
strvar = "7890"
res = strvar.isdecimal()
print(res)
*center 填充字符串,原字符居中 (默认填充空格)
center(要填充的数字,字符)
要填充的数字 是总长度 = 要填冲的字符 + 要填充的符号
strvar = "好"
res = strvar.center(6,"*")
print(res)
# 方法一
strvar = " "
res = strvar.center(7," ")
print(res,99)
# 方法二
strvar = "%7s" % (' ')
print(strvar,99)
*strip 默认去掉首尾两边的空白符 ( \n \t 空格)
strvar = " 周杰伦 "
res =strvar.strip()
print(res)
指定去除首尾两边的字符@
strvar = "@ss"
res = strvar.strip("@")
print(res)
还有一些函数。等用到了再查吧…
python之容器类型数据的一系列操作之字符串相关推荐
- python入门之容器类型数据的一系列操作之列表、字典、集合
列表的操作 1.列表的拼接 (同元组) 2.列表的重复 (同元组) 3.列表的切片 (同元组) 语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值] (1)[开始索引:] 从开始索 ...
- Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整
BigDecimal在用double做入参的时候,二进制无法精确地表示十进制小数,编译器读到字符串"0.0000002"和"1.0000002"之后,必须把它转 ...
- 基于Python实现对各种数据文件的操作
本文总结使用Python对常见的数据文件进行读写操作. 常见的数据文件类型如下: txt csv excel(xls\xlsx) 在线网页数据 pdf\word 其他数据软件格式 1 txt文件 更多 ...
- Python之字典类型数据常见操作及排序
一.Python 字典 Python 的字典 dictionary 是一种灵活的数据结构类型,字典的每个键值对(key=>value)用冒号(:)分割,每个对之间用逗号(,)分割. Python ...
- python的序列类型及其特点_Fluent Python 笔记——序列类型及其丰富的操作
序列的分类 Python 标准库用 C 语言实现了丰富的序列类型的数据结构,如: 容器序列(能存放不同类型的数据):list.tuple.collections.deque 等 扁平序列(只容纳同一类 ...
- python fetchall()转化为数据框_python 操作mysql数据中fetchone()和fetchall()方式
fetchone() 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None fetchall() 返回多个元组,即返回多个记录(rows),如果没有结果 则返回 () 需要注明:在 ...
- python提取pdf表格数据_Python骚操作,提取pdf文件中的表格数据!
在实际研究中,我们经常需要获取大量数据,而这些数据很大一部分以pdf表格的形式呈现,如公司年报.发行上市公告等.面对如此多的数据表格,采用手工复制黏贴的方式显然并不可取.那么如何才能高效提取出pdf文 ...
- python多线程读取数据库数据_python多线程操作MySQL数据库pymysql
python多线程操作MySQL数据库pymysql 项目中使用多线程操作数据库提示错误:pymysql.err.InterfaceError: (0, "),原因是pymysql的exec ...
- python中哪些类型数据是不可变的_python的可变与不可变数据类型
首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型.可变数据类型:列表list和字典dict:不可变数据类型:整型int.浮点型float.字符串型string和元组tuple ...
最新文章
- leetcode算法题--最长定差子序列
- Android ListViewDemo
- flume-source
- 笔记-VUE滚动加载更多数据
- java.io下载_java io 文件下载
- hdfs 小文件服务器,服务器远程上传hdfs文件大小
- 网络编程中使用float型数据要注意
- 75个PPT下载丨2020中国系统架构师大会PPT分享(SACC2020)
- 计算机组成原理脱机运算器实验数据,实验三:脱机运算器实验报告.pdf
- 达摩院实现自动驾驶核心技术突破,首次实现3D物体检测精度与速度的兼得
- [MySQL Bug]DDL操作导致备库复制中断
- 最近两周的前后端交互
- 三包围结构的字是什么样的_男孩起名精选:搭配美观,结构合理的男宝宝名字...
- cygwin的离线安装包
- 显示器尺寸对照表_电脑显示器尺寸对照表一览,教你怎么选择最适合自己的显示器尺寸...
- 联想计算机usb驱动程序,联想笔记本USB3.0驱动
- html显示mysql图片路径_从MYSQL数据库取出微信emoji表情在web html上显示
- 每日工作记录——任意小数分频研究
- 【建站教程】网站引用三方图片遇到简单防盗链referer的处理办法
- 青龙面板之白嫖游戏云
热门文章
- 异常续--捕获--重载与重写--finally块
- 做好母婴行业社群运营的3大关键点
- Java实验定义一个电视机类实现电视机基本功能等
- CnOpenData·A股上市公司股权激励数据
- Mask Rcnn代码与原理相结合解析
- 王者荣耀服务器能不能注销,王者荣耀账号怎么注销 游戏账号注销条件及攻略...
- mysql index_MySQL Index详解
- 苹果手机有什么小功能?
- [源码解析] 并行分布式任务队列 Celery 之 多进程架构和模型
- Python操作Excel造成的科学记数法问题