使用字符串的过程中或多或少我们要将字符串中的内容进行修改,虽然字符串是不可改变的,但是我们可以使用方法来返回修改后的副本。

下面我们将介绍几种常用的字符串修改方法,分别是lower()、upper()、lstrip()、rstrip ()、strip()。

1. lower()方法和upper()方法

这两种方法和上一节的测试方法类似,前者是返回一个副本,副本中把字符串中所有字符转换为了小写字符,而后者是返回一个副本,副本中把字符串中所有字符转换为了大写字符。

看下面的例子:

>>> my_str = 'ABCabc'#包含大小写字母的字符串
>>> my_str.upper()#将字符串全部大写
'ABCABC'
>>> my_str.lower()#将字符串全部小写
'abcabc'
>>> my_str#再看一下原始字符串有没有改变
'ABCabc'

一定要注意的就是返回的是副本,使用了方法,但是原始字符串是没有改变的,如果我们要获取副本,可以另取名,也可以直接覆盖。

>>> my_str = my_str.upper()#直接覆盖
my_str
>>> my_str
'ABCABC'

2. lstrip()方法、rstrip ()方法和strip()方法

这三种方法的原理类型,他们都是用于处理字符串中的空白字符。

1) lstrip()方法会返回一个副本,副本中的字符串删除所有前导的空白字符。

2) rstrip()方法会返回一个副本,副本中的字符串删除所有后导的空白字符

3) strip()方法会返回一个副本,副本中的字符串删除所有前导和后导的空白字符。

我们先定义一个字符串my_str =‘\n\twww.dotcpp.com\t\n’,然后看下图:

python字符串1

在图中前导为字符串字符串前面的空白字符,后导同理,前导对应的就是lstrip()方法,后导对应rstrip()方法,而strip()对应的是两种方法的结合。

我们来看一下代码:

>>> my_str = ' \n\t www.dotcpp.com \t\n  '
>>> my_str.rstrip()#返回删除后导空白字符的副本
' \n\t  
>>> my_str.lstrip()#返回删除前导空白字符的副本
'www.dotcpp.com \t\n  '
>>> my_str.strip()#返回删除前导后导空白字符的副本
'www.dotcpp.com'

综合代码和上图来理解一下这个例子,通俗的讲,前导返回的副本删除了前面部分,后导返回的副本删除了后面部分,而strip()方法返回的副本把前导后导一并删除。

3. 搜索方法

我们在写程序的时候有时候需要搜索字符串中的元素,除了前面讲过的find()方法和index()方法,我们有时候还需要用到endswith()方法和startswith()方法。

       1) endswith()方法

它的语法格式为:

my_str.endswith(substring)

my_str为字符串名,substring参数是一个字符串,如果在该字符串的结尾为substing,那么返回True,反之返回False。

       2) startswith()方法

它的语法格式为:

my_str.startswith(substring)

my_str为字符串名,substring参数是一个字符串,如果在该字符串的开头为substing,那么返回True,反之返回False。

举个例子:

>>> my_str = 'www.dotcpp.com' 
>>> my_str.endswith('.com')
True
>>> my_str.startswith('www.')
True

4. 替代方法——replace()

replace()方法返回一个副本,副本中将我们需要替代的字符替换掉,它的语法格式为:

my_str.replace(old,new)

my_str为字符串名,old为要替换掉的字符,new为替换上的字符。

举个例子:

>>> my_str = 'www.dotcpp.com'
>>> my_str.replace('w','m')
'mmm.dotcpp.com'

这种方法替换的时候仍然是返回的副本,它会替换掉所有需要替换的字符,保持原字符串是不改变的。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)