8种字符串常见操作| 手把手教你入门Python之二十七

简介: 本节介绍8种字符串常⻅操作

上一篇:详解字符串| 手把手教你入门Python之二十六
下一篇:详解字符集和编码规则| 手把手教你入门Python之二十八

本文来自于千锋教育在阿里云开发者社区学习中心上线课程《Python入门2020最新大课》,主讲人姜伟。

字符串常见操作

字符串的常见操作包括:
获取⻓度:len
查找内容:find,index,rfind,rindex
判断:startswith,endswith,isalpha,isdigit,isalnum,isspace
计算出现次数:count
替换内容:replace
切割字符串:split,rsplit,splitlines,partition,rpartition
修改⼤⼩写:capitalize,title,upper,lower
空格处理:ljust,rjust,center,lstrip,rstrip,strip
字符串拼接:join
注意:在Python中,字符串是不可变的!所有的字符串相关⽅法,都不会改变原有的字符串,都是返回⼀个结果,在这个新的返回值⾥,保留了执⾏后的结果!

⼀、 len

len函数可以获取字符串的⻓度。

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
print(len(mystr)) # 17 获取字符串的⻓度

⼆、 查找

查找相关的⽅法,使⽤⽅式⼤致相同,但是略有区别。

1. find

查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第⼀次出现的开始位置索引值,如果
不存在,则返回-1.
语法格式:

S.find(sub[, start[, end]]) -> int

示例:

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
print(mystr.find('好⻛光')) # 10 '好⻛光'第⼀次出现时,'好'所在的位置
print(mystr.find('你好')) # -1 '你好'不存在,返回 -1
print(mystr.find('⻛', 12)) # 15 从下标12开始查找'⻛',找到⻛所在的位置试15
print(mystr.find('⻛光',1,10)) # -1 从下标1开始到12查找"⻛光",未找到,返回 -1

2. rfind

类似于 find()函数,不过是从右边开始查找。

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
print(mystr.rfind('好')) # 14

image.png

3.index

跟find()⽅法⼀样,只不过,find⽅法未找到时,返回-1,⽽str未找到时,会报⼀个异常。
语法格式:

S.index(sub[, start[, end]]) -> int

4.rindex

类似于 index(),不过是从右边开始。

image.png

image.png

image.png

三、判断

python提供了⾮常丰富的⽅法,可以⽤来对⼀个字符串进⾏判断。

1. startswith

判断字符串是否以指定内容开始。 语法格式:

S.startswith(prefix[, start[, end]]) -> bool

示例:

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
print(mystr.startswith('今')) # True
print(mystr.startswith('今⽇')) # False

2. endswith

判断字符串是否以指定内容结束。

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
print(mystr.endswith('好⻛光')) #True
print(mystr.endswith('好⽇⼦')) #False

3. isalpha

判断字符串是否是纯字⺟。

mystr = 'hello'
print(mystr.isalpha()) # True
mystr = 'hello world'
print(mystr.isalpha()) # False 因为中间有空格

4. isdigit

判断⼀个字符串是否是纯数字,只要出现⾮0~9的数字,结果就是False.

mystr = '1234'
print(mystr.isdigit()) # True
mystr = '123.4'
print(mystr.isdigit()) # False
mystr = '-1234'
print(mystr.isdigit()) # False

5. isalnum

判断是否由数字和字⺟组成。只要出现了⾮数字和字⺟,就返回False.

mystr = 'abcd'
print(mystr.isalnum()) # True
mystr = '1234'
print(mystr.isalnum()) # True
mystr = 'abcd1234'
print(mystr.isalnum()) # True
mystr = 'abcd1234_'
print(mystr.isalnum()) # False

6. isspace

如果 mystr 中只包含空格,则返回 True,否则返回 False.

mystr = ''
print(mystr.isspace()) # False mystr是⼀个空字符串
mystr = ' '
print(mystr.isspace()) # True 只有空格
mystr = ' d'
print(mystr.isspace()) # False 除了空格外还有其他内容

四、count

返回 str在start和end之间 在 mystr⾥⾯出现的次数。
语法格式:

S.count(sub[, start[, end]]) -> int

示例:

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
print(mystr.count('好')) # 3. '好'字出现三次

五、替换

替换字符串中指定的内容,如果指定次数count,则替换不会超过count次。

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
newstr = mystr.replace('好', '坏')
print(mystr) # 今天天⽓好晴朗,处处好⻛光呀好⻛光 原字符串未改变!
print(newstr) # 今天天⽓坏晴朗,处处坏⻛光呀坏⻛光 得到的新字符串⾥,'好'被修改成了'坏'
newstr = mystr.replace('好','坏',2) # 指定了替换的次数
print(newstr) # 今天天⽓坏晴朗,处处坏⻛光呀好⻛光 只有两处的'好'被替换成了'坏'

六、内容分隔

内容分隔主要涉及到split,splitlines,partition和rpartition四个⽅法。

split

以指定字符串为分隔符切⽚,如果 maxsplit有指定值,则仅分隔 maxsplit+1 个⼦字符串。返回的结果是⼀个列表。

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
result = mystr.split() # 没有指定分隔符,默认使⽤空格,换⾏等空⽩字符进⾏分隔
print(result) #['今天天⽓好晴朗,处处好⻛光呀好⻛光'] 没有空⽩字符,所以,字符串未被分隔
result = mystr.split('好') # 以 '好' 为分隔符
print(result) # ['今天天⽓', '晴朗,处处','⻛光呀,'⻛光']
result = mystr.split("好",2) # 以 '好' 为分隔符,最多切割成3份
print(result) # ['今天天⽓', '晴朗,处处', '⻛光呀好⻛光']

rsplit

⽤法和split基本⼀致,只不过是从右往左分隔。

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
print(mystr.rsplit('好',1)) #['今天天⽓好晴朗,处处好⻛光呀', '⻛光']

splitlines

按照⾏分隔,返回⼀个包含各⾏作为元素的列表。

mystr = 'hello \nworld'
print(mystr.splitlines())

partition

把mystr以str分割成三部分,str前,str和str后,三部分组成⼀个元组

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
print(mystr.partition('好')) # ('今天天⽓', '好', '晴朗,处处好⻛光呀好⻛光')

rpartition

类似于 partition()函数,不过是从右边开始.

mystr = '今天天⽓好晴朗,处处好⻛光呀好⻛光'
print(mystr.rpartition('好')) # ('今天天⽓好晴朗,处处好⻛光呀', '好', '⻛光')

七、修改⼤⼩写

修改⼤⼩写的功能只对英⽂有效,主要包括,⾸字⺟⼤写capitalize,每个单词的⾸字⺟⼤写title,全⼩写lower,
全⼤写upper.

capitalize

第⼀个单词的⾸字⺟⼤写。

mystr = 'hello world'
print(mystr.capitalize()) # Hello world

title

每个单词的⾸字⺟⼤写。

mystr = 'hello world'
print(mystr.title()) # Hello World

lower

所有都变成⼩写。

mystr = 'hElLo WorLD'
print(mystr.lower()) # hello world

upper

所有都变成⼤写。

mystr = 'hello world'
print(mystr.upper()) #HELLO WORLD

image.png

image.png

⼋、空格处理

Python为我们提供了各种操作字符串⾥表格的⽅法。

1. ljust

返回指定⻓度的字符串,并在右侧使⽤空⽩字符补全(左对⻬)。

str = 'hello'
print(str.ljust(10)) # hello 在右边补了五个空格

2. rjust

返回指定⻓度的字符串,并在左侧使⽤空⽩字符补全(右对⻬)。

str = 'hello'
print(str.rjust(10)) # hello在左边补了五个空格

3. center

返回指定⻓度的字符串,并在两端使⽤空⽩字符补全(居中对⻬)

str = 'hello'
print(str.center(10)) # hello 两端加空格,让内容居中

4. lstrip

删除 mystr 左边的空⽩字符。

mystr = ' he llo '
print(str.lstrip()) #he llo 只去掉了左边的空格,中间和右边的空格被保留

5. rstrip

删除 mystr 右边的空⽩字符。

mystr = ' he llo '
print(str.rstrip()) # he llo右边的空格被删除

6. strip

删除两断的空⽩字符。

str = ' he llo '
print(str.strip()) #he llo

image.png

image.png

字符串拼接

把参数进⾏遍历,取出参数⾥的每⼀项,然后再在后⾯加上mystr
语法格式:

S.join(iterable)

示例:

mystr = 'a'
print(mystr.join('hxmdq')) #haxamadaq 把hxmd⼀个个取出,并在后⾯添加字符a. 最后的 q 保
留,没有加 a
print(mystr.join(['hi','hello','good'])) #hiahelloagood

作⽤:可以把列表或者元组快速的转变成为字符串,并且以指定的字符分隔。

txt = '_'
print(txt.join(['hi','hello','good'])) #hi_hello_good
print(txt.join(('good','hi','hello'))) #good_hi_hello

字符串运算符

  1. 字符串和字符串之间能够使⽤加法运算符,作⽤是将两个字符串拼接成为⼀个字符串。例
    如: 'hello' + 'world' 的结果是 'helloworld'
  2. 字符串和数字之间可以做乘法运算,结果是将指定的字符串重复多次。例如: 'hello'*2 的结果
    是 hellohello
  3. 字符串和字符串之间,如果使⽤⽐较运算符进⾏计算,会获取字符对应的编码,然后进⾏⽐较。
  4. 除上述⼏种运算符以外,字符串默认不⽀持其他运算符。
    image.png
相关文章
|
20天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
25天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
28天前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
120 64
|
21天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
19天前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
41 5
|
21天前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
37 7
|
23天前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
25 7
|
22天前
|
开发者 Python
Python中的装饰器:从入门到实践
本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
35 5
|
21天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
54 3
|
25天前
|
Python
Python编程入门:从零开始的代码旅程
本文是一篇针对Python编程初学者的入门指南,将介绍Python的基本语法、数据类型、控制结构以及函数等概念。文章旨在帮助读者快速掌握Python编程的基础知识,并能够编写简单的Python程序。通过本文的学习,读者将能够理解Python代码的基本结构和逻辑,为进一步深入学习打下坚实的基础。