字符串相关操作:

(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之容器类型数据的一系列操作之字符串相关推荐

  1. python入门之容器类型数据的一系列操作之列表、字典、集合

    列表的操作 1.列表的拼接 (同元组) 2.列表的重复 (同元组) 3.列表的切片 (同元组) 语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值] (1)[开始索引:] 从开始索 ...

  2. Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整

    BigDecimal在用double做入参的时候,二进制无法精确地表示十进制小数,编译器读到字符串"0.0000002"和"1.0000002"之后,必须把它转 ...

  3. 基于Python实现对各种数据文件的操作

    本文总结使用Python对常见的数据文件进行读写操作. 常见的数据文件类型如下: txt csv excel(xls\xlsx) 在线网页数据 pdf\word 其他数据软件格式 1 txt文件 更多 ...

  4. Python之字典类型数据常见操作及排序

    一.Python 字典 Python 的字典 dictionary 是一种灵活的数据结构类型,字典的每个键值对(key=>value)用冒号(:)分割,每个对之间用逗号(,)分割. Python ...

  5. python的序列类型及其特点_Fluent Python 笔记——序列类型及其丰富的操作

    序列的分类 Python 标准库用 C 语言实现了丰富的序列类型的数据结构,如: 容器序列(能存放不同类型的数据):list.tuple.collections.deque 等 扁平序列(只容纳同一类 ...

  6. python fetchall()转化为数据框_python 操作mysql数据中fetchone()和fetchall()方式

    fetchone() 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None fetchall() 返回多个元组,即返回多个记录(rows),如果没有结果 则返回 () 需要注明:在 ...

  7. python提取pdf表格数据_Python骚操作,提取pdf文件中的表格数据!

    在实际研究中,我们经常需要获取大量数据,而这些数据很大一部分以pdf表格的形式呈现,如公司年报.发行上市公告等.面对如此多的数据表格,采用手工复制黏贴的方式显然并不可取.那么如何才能高效提取出pdf文 ...

  8. python多线程读取数据库数据_python多线程操作MySQL数据库pymysql

    python多线程操作MySQL数据库pymysql 项目中使用多线程操作数据库提示错误:pymysql.err.InterfaceError: (0, "),原因是pymysql的exec ...

  9. python中哪些类型数据是不可变的_python的可变与不可变数据类型

    首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型.可变数据类型:列表list和字典dict:不可变数据类型:整型int.浮点型float.字符串型string和元组tuple ...

最新文章

  1. leetcode算法题--最长定差子序列
  2. Android ListViewDemo
  3. flume-source
  4. 笔记-VUE滚动加载更多数据
  5. java.io下载_java io 文件下载
  6. hdfs 小文件服务器,服务器远程上传hdfs文件大小
  7. 网络编程中使用float型数据要注意
  8. 75个PPT下载丨2020中国系统架构师大会PPT分享(SACC2020)
  9. 计算机组成原理脱机运算器实验数据,实验三:脱机运算器实验报告.pdf
  10. 达摩院实现自动驾驶核心技术突破,首次实现3D物体检测精度与速度的兼得
  11. [MySQL Bug]DDL操作导致备库复制中断
  12. 最近两周的前后端交互
  13. 三包围结构的字是什么样的_男孩起名精选:搭配美观,结构合理的男宝宝名字...
  14. cygwin的离线安装包
  15. 显示器尺寸对照表_电脑显示器尺寸对照表一览,教你怎么选择最适合自己的显示器尺寸...
  16. 联想计算机usb驱动程序,联想笔记本USB3.0驱动
  17. html显示mysql图片路径_从MYSQL数据库取出微信emoji表情在web html上显示
  18. 每日工作记录——任意小数分频研究
  19. 【建站教程】网站引用三方图片遇到简单防盗链referer的处理办法
  20. 青龙面板之白嫖游戏云

热门文章

  1. 异常续--捕获--重载与重写--finally块
  2. 做好母婴行业社群运营的3大关键点
  3. Java实验定义一个电视机类实现电视机基本功能等
  4. CnOpenData·A股上市公司股权激励数据
  5. Mask Rcnn代码与原理相结合解析
  6. 王者荣耀服务器能不能注销,王者荣耀账号怎么注销 游戏账号注销条件及攻略...
  7. mysql index_MySQL Index详解
  8. 苹果手机有什么小功能?
  9. [源码解析] 并行分布式任务队列 Celery 之 多进程架构和模型
  10. Python操作Excel造成的科学记数法问题