Python学习之字符串常用操作详解

 更新时间:2022年09月29日 09:37:20   作者:遇安.112  
字符串是Pyhon中的常用的数据类型,这篇文章主要为大家详细介绍一下python字符串的一些常用操作,文中示例代码讲解详细,需要的朋友可以参考下

1、查找字符串

除了使用index()方法在字符串中查找指定元素,还可以使用find()方法在一个较长的字符串中查找子串。如果找到子串,返回子串所在位置的最左端索引,否则返回-1。

语法格式:

str.find(sub[,start[,end]])

其中,str表示被查找的字符串。sub表示查找的子串。start表示开始索引,缺省时为0。end表示结束索引,缺省时为字符串的长度。

如果需要知道指定元素在序列中出现的次数,可以使用count()方法进行计数并返回。

语法格式:

sequence.count(obj)

其中,sequence表示序列,obj表示要统计的对象。 

例:使用index()查找《三国演义》片段中某个字首次出现的位置,然后使用count()方法统计出现的次数。

ex='''次日,于桃园中,备下乌牛白马祭礼等项,三人焚香再拜而说誓曰:“念刘备、关羽、张飞,虽然异姓,既结为兄弟,则同心协力,救困扶危;上报国家,下安黎庶。
不求同年同月同日生,只愿同年同月同日死。
皇天后土,实鉴此心,背义忘恩,天人共戮!”誓毕,拜玄德为兄,关羽次之,张飞为弟。祭罢天地,复宰牛设酒,聚乡中勇士,
得三百余人,就桃园中痛饮一醉。来日收拾军器,但恨无马匹可乘。正思虑间,人报有两个客人,引一伙伴当,赶一群马,投庄上来。
玄德曰:“此天佑我也!”三人出庄迎接。原来二客乃中山大商:一名张世平,一名苏双,每年往北贩马,近因寇发而回。
玄德请二人到庄,置酒管待,诉说欲讨贼安民之意。二客大喜,愿将良马五十匹相送;又赠金银五百两,镔铁一千斤,以资器用。
'''
name=input('请输入人物姓名:')
if name in ex:
    #用index()方法获取name首次出现的位置Index
    Index=ex.index(name)
    print(name,'首次出现的位置的索引为:',Index)
    print(name,'在此片段中出现',ex.count(name),'次')
else:
    print(name+'没有出现在片段中')

例:使用find()方法完成上面的例子

ex='''次日,于桃园中,备下乌牛白马祭礼等项,三人焚香再拜而说誓曰:“念刘备、关羽、张飞,虽然异姓,既结为兄弟,则同心协力,救困扶危;上报国家,下安黎庶。
不求同年同月同日生,只愿同年同月同日死。
皇天后土,实鉴此心,背义忘恩,天人共戮!”誓毕,拜玄德为兄,关羽次之,张飞为弟。祭罢天地,复宰牛设酒,聚乡中勇士,
得三百余人,就桃园中痛饮一醉。来日收拾军器,但恨无马匹可乘。正思虑间,人报有两个客人,引一伙伴当,赶一群马,投庄上来。
玄德曰:“此天佑我也!”三人出庄迎接。原来二客乃中山大商:一名张世平,一名苏双,每年往北贩马,近因寇发而回。
玄德请二人到庄,置酒管待,诉说欲讨贼安民之意。二客大喜,愿将良马五十匹相送;又赠金银五百两,镔铁一千斤,以资器用。
'''
 
name=input("请输入人物姓名:")
Index=ex.find(name)
if Index>-1:
    print('{}首次出现的位置索引为:{}'.format(name,Index))
    print('{}在此片段中出现{}次'.format(name,ex.count(name)))
else:
    print('{}没有出现在此片段中'.format(name))

2、分割字符串

split()方法以指定字符为分隔符,从字符串左端开始将字符串分隔成多个子串,并返回分割结果的列表。

语法格式:

str.split([delimiter,num])

其中,str表示被分割的字符串,delimiter表示分隔符,可以是空格、换行(\n)、制表符(\t)等,缺省时为空格,num表示分割次数,缺省时全部分割。

# 分割字符串
strs='This is an example of cutting' #创建字符串
#以空格为分隔符将字符串全部分割
print(strs.split()) # ['This', 'is', 'an', 'example', 'of', 'cutting']
#以空格为分隔符将字符串分割3次
print(strs.split(' ',3)) # ['This', 'is', 'an', 'example of cutting']

3、连接字符串

join()方法用于将序列中的元素以指定的字符连接,生成一个新的字符串。

语法格式:

str.join(sequence) 

其中,str表示连接符,可以为空,sequence表示要连接的序列

# 连接字符串
print('-'.join('Python!')) # P-y-t-h-o-n-!
 
#例:将字符串“Rain falls   on field   and    tree”中的多余空格删除,即如果有连续空格只保留一个
strs='Rain falls   on field   and    tree'
print('原文:',strs)
split_strs=strs.split() #以空格为分割符,将strs全部分割
print("以空格分割后:",split_strs) #  ['Rain', 'falls', 'on', 'field', 'and', 'tree']
join_strs=' '.join(split_strs) # 用空格连续分割后的字串
print('只留一个空格的结果:',join_strs) # Rain falls on field and tree

4、替换字符串

replace()方法用于将字符串中的旧字符串替换成新字符串。

语法格式:

str.replace(old,new[,max])

其中, str表示字符串,old表示将被替换的旧字符串,new表示新字符串,用于替换old,max是可选参数,表示替换的最大次数,缺省时替换所有。

#替换字符串
#例:使用replace()方法将字符串“hello Python hello hello”中的“hello”替换成“HELLO”
strs='hello Python hello hello'
#全部替换
print(strs.replace('hello','HELLO')) # HELLO Python HELLO HELLO
#只替换2次
print(strs.replace('hello','HELLO',2)) # HELLO Python HELLO hello

5、移除字符串的首尾字符

strip()方法用于移除字符串首尾连续的空白字符或指定字符。

语法格式:

str.strip([chars])

其中,str表示字符串,chars表示移除的字符串首尾指定的字符,缺省时为空格。

#移除字符串的首尾字符
#例:使用strip()方法移除字符串‘110This is an test0001'中的‘0'和‘1'
strs='110This is an test0001'
#移除两端的1
print(strs.strip('1')) # 0This is an test000
# print(strs.strip('0')) # 结果:110This is an test0001 说明移除两端需要按顺序移除
#移除两端的1和0
print(strs.strip('10')) # This is an test

6、转换字符串的大小写

lower()方法用于将字符串中所有大写字符转换为小写,而upper()方法则用于将字符串中所有小写字符转换为大写。

语法格式:

str.lower()和str.upper() 

#转换字符串的大小写
#例:使用lower()方法将字符串“HELLO Python”转换为小写,再使用upper()方法将其转换为大写
strs='HELLO Python'
print(strs.lower()) # hello python
print(strs.upper()) # HELLO PYTHON

7、检测字符串(后续还会更新)

isalnum()方法用于检测字符串是否由字母和数字,或两种中的一种组成,如果是则返回True,否则返回False。

语法格式:

str.isalnum()

其中,str表示要检测的字符串

#检测字符串
#例:使用isalnum()方法判断字符串“2022test”是否由字母和数字组成
strs='2022test'
print(strs.isalnum()) # True
str2='六'
print(str2.isalnum()) # True 支持汉字
str3='20 22'
print(str3.isalnum()) # False 包含空格为false

到此这篇关于Python学习之字符串常用操作详解的文章就介绍到这了,更多相关Python字符串操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解python中常用配置的读取方法

    详解python中常用配置的读取方法

    常见的应用配置方式有环境变量和配置文件,对于微服务应用,还会从配置中心加载配置,本文主要介绍了从环境变量、.env文件、.ini文件、.yaml文件等文件的读取配置,需要的可以参考下
    2024-01-01
  • 一文详解如何从根本上优雅地解决VSCode中的Python模块导入问题

    一文详解如何从根本上优雅地解决VSCode中的Python模块导入问题

    有时你可能会遇到这种问题,明明用pip安装好了一个python模块,但在VScode中总是显示错误,这篇文章主要给大家介绍了关于如何从根本上优雅地解决VSCode中的Python模块导入问题的相关资料,需要的朋友可以参考下
    2024-07-07
  • Python与Matlab混合编程的实现案例

    Python与Matlab混合编程的实现案例

    本文主要介绍了Python与Matlab混合编程的实现案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • mac PyCharm添加Python解释器及添加package路径的方法

    mac PyCharm添加Python解释器及添加package路径的方法

    今天小编就为大家分享一篇mac PyCharm添加Python解释器及添加package路径的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python爬虫流程基础示例零基础学习

    python爬虫流程基础示例零基础学习

    这篇文章主要为大家介绍了python爬虫流程基础示例零基础学习,我们将讨论 Python 网络编程中的爬虫基础,作为一个完全的初学者,你将学习到爬虫的基本概念、常用库以及如何编写一个简单的爬虫
    2023-06-06
  • Python中函数eval和ast.literal_eval的区别详解

    Python中函数eval和ast.literal_eval的区别详解

    eval函数在Python中做数据类型的转换还是很有用的。它的作用就是把数据还原成它本身或者是能够转化成的数据类型。那么eval和ast.literal_val()的区别是什么呢?本文将大家介绍关于Python中函数eval和ast.literal_eval区别的相关资料,需要的朋友可以参考下。
    2017-08-08
  • 解决json中ensure_ascii=False的问题

    解决json中ensure_ascii=False的问题

    这篇文章主要介绍了解决json中ensure_ascii=False的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python科学计算之narray对象用法

    python科学计算之narray对象用法

    今天小编就为大家分享一篇python科学计算之narray对象用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • matplotlib 纵坐标轴显示数据值的实例

    matplotlib 纵坐标轴显示数据值的实例

    今天小编就为大家分享一篇matplotlib 纵坐标轴显示数据值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python在每个字符后添加空格的实例

    python在每个字符后添加空格的实例

    今天小编就为大家分享一篇python在每个字符后添加空格的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论