当前位置: 首页 > news >正文

Python 从入门到实战14(字符串相关操作)

        我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

      上篇文章我们通过举例学习了字符串进行简单说明。今天继续讨论字符串相关的操作。

字符串的处理在实际的工作中经常会用到,需要熟练掌握才行。

1、字符串的截取

字符串也属于序列,可以进行切片操作。

切片的语法:   str_name[start:end:step]

参数说明:     str_name ----------表示要截取的字符串

               Start    -----------要截取的字符串的第一个字符索引,不指定的话默认为0

               End    -----------要截取的字符串最后一个字符索引,不指定则默认全部

               Step    ------------表示切片的步长,默认为1

举例说明:

str1 = "我爱祖国!"
str2 = 'I am Dewi,'
str_add = str2 + str1
print(str_add[0])#取第一个字符
print(str_add[1])#取第二个字符
print(str_add[2:10:2])#取第3个到第10,步长为2
print(str_add[2:10])#取第3个到第10

输出结果:

实际例子:如要取出身份证中的生日

credit_num = '123434199803248010'
print("这位同学的生日是:",credit_num[10:12],"-",credit_num[12:14])

输出结果:

这位同学的生日是: 03 – 24

2、字符串的分割

分割字符串可以使用split()方法来实现。

语法如下:strname.split(sep,maxsplit)

说明:  strname----------要分割的字符串

        Sep    ----------用于指定分隔符,可以包含多个分隔符,默认为None,即所有空字符(包含空格、换行“\n”、制表符“\t”等)

        Maxsplit ---------可选参数,用于指定分割的次数,不指定默认为-1,分割次数无限制。

返回值:分割后的字符串列表

举例说明:

str_sp = "I am dewi,I love China!"
print(str_sp)
list_sp = str_sp.split() #默认使用空格分割
print(list_sp)
list_sp1 = str_sp.split(",")#使用逗号分割
print(list_sp1)
str_baidu = "www.baidu.com"
print(str_baidu.split("."))#指定.来分割

输出结果:

3、字符串的合并

语法格式:strnew = string.join(iterable)

参数: strnew   ------生成新的字符串

       String   ---------字符串类型,用于指定合并时字符串的类型

       Iterable -------- 可迭代对象,该迭代对象中的所有元素被合并到一起,称为一个新的字符串,并且以string 分割开来。

举个小栗子:如  ['www', 'baidu', 'com']  百度的网址存在列表中,将其合并为字符串

str_baidu = "www.baidu.com"
list_baidu = str_baidu.split(".")#指定.来分割
print(list_baidu)
str_new_baidu = ".".join(list_baidu)#百度的列表合并为字符串,并用.分割
print(str_new_baidu)

输出结果:

4、检索字符串

在python中有关于字符串查找的方法,我们来讨论一些。

1)count()方法

使用count()方法用于检索指定字符串在另一个字符串中出现的次数。若是检索的字符串不存在,则返回0,否则返回具体的次数。

使用语法:   str.count(sub[,start[,end]])

说明:  str   --------表示原字符串

        Sub   -------表示子字符串

        Start   ------可选参数,检索的起始位置,不写默认从头开始(子字符串)

        End    ------可选参数,检索的结束位置,不写默认检索到结尾(子字符串)

举个例子:

#计算#出现的次数
str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工"
print("#出现的次数:",str_count.count("#"))
print("#职工出现的次数:",str_count.count("#职工"[0:3]))#注意0:3是之子字符串

输出结果参考:

2)find()方法

使用find()方法可以检索是否包含指定的字符串。如果检索的子字符串不存在,就返回-1,否在返回首次出现该子字符串时的索引。

参考语法:str.find(sub[start,end])

注意:其中str  : 表示被检索的字符串

Sub------表示子字符串,

Start -------可选参数,表示检索范围的起始位置的索引,不指定的从头开始检索

End  ---------可选参数,表示检索范围的结束位置的索引,不指定的检索到结尾

str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工 #职业"
print(str_count.find("董"))

输出:1

3)index()方法

使用的index()方法检索字符串和find()方法类似。只是index()方-方法若是指定的字符串不存在时,会抛出异常。语法:str.index(sub[,start[,end]])

参数和上面类似

举例说明:

str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工 #职业"
print(str_count.index("董"))    #索引为1
print(str_count.index("东"))    #查询到没有对应的子字符串

输出结果:

4)startswith()方法

使用startswith 方法查看字符串是不是以某个字符开头,若是返回True

若否返回False

举例说明:

str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工 #职业"
print(str_count.startswith("董"))
print(str_count.startswith("#"))

输出如下:

5)endswith()方法

使用endswith() 方法查看字符串是不是以某个字符开头,若是返回True

若否返回False

举例说明:

str_count = "#董事长 #总经理 #保安队长 #保安队长 #职工 #职工 #职工 #职业"
print(str_count.endswith("董"))
print(str_count.endswith("#职业"))

今天先写到这里了,每天进步一点点。今天也要加油啊!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 电源自动测试系统有哪些原理和优势?
  • [综述笔记]Federated learning for medical image analysis: A survey
  • 决策树算法原理
  • 一文彻底了解DNS协议工作原理,恐怕没有比这更通俗易懂的了吧?
  • 1.C++入门1(c++编译过程,命名空间,C++输入输出,缺省参数)
  • es6(1)
  • 如何使用Spoon连接data-integration-server并在服务器上执行转换
  • 使用WordCloud报错‘ImageDraw‘ object has no attribute ‘textbbox‘
  • 2024年一区SCI-极光优化算法 Polar Lights Optimization-附Matlab免费代码
  • opencv的球面投影
  • 基于SpringBoot的大学生创新创业训练项目管理系统
  • 「OC」ViewController的生命周期
  • wakenet尾迹
  • SprinBoot+Vue宠物店管理系统的设计与实现
  • 比较stl库的ostringstream与Qt的QString::arg(),QString::number()
  • CSS相对定位
  • Druid 在有赞的实践
  • ES学习笔记(12)--Symbol
  • linux安装openssl、swoole等扩展的具体步骤
  • passportjs 源码分析
  • PV统计优化设计
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 浅谈web中前端模板引擎的使用
  • 嵌入式文件系统
  • 深入浏览器事件循环的本质
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • Python 之网络式编程
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​人工智能书单(数学基础篇)
  • (done) 两个矩阵 “相似” 是什么意思?
  • (windows2012共享文件夹和防火墙设置
  • (zhuan) 一些RL的文献(及笔记)
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十三)Flask之特殊装饰器详解
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • .Net Web项目创建比较不错的参考文章
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET6 命令行启动及发布单个Exe文件
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET下ASPX编程的几个小问题
  • //TODO 注释的作用
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @Import注解详解
  • @基于大模型的旅游路线推荐方案
  • [ A*实现 ] C++,矩阵地图
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [1525]字符统计2 (哈希)SDUT
  • [2024-06]-[大模型]-[Ollama] 0-相关命令
  • [C#7] 1.Tuples(元组)
  • [c#基础]值类型和引用类型的Equals,==的区别
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体