Python从入门到高手6.3节-字符串操作方法

news/2024/10/22 18:27:18/

目录

6.3.1 字符串常用操作方法

6.3.2 获取字符串长度

6.3.3 字符串的大小写操作

6.3.4 删除字符串中的指定字符

6.3.5 字符串的子串查找

6.3.6 字符串的子串统计

6.3.7 字符串的子串替换

6.3.8 字符串的拆分函数

6.3.9 字符串的前缀与后缀

6.3.10 你一定要成为高手


6.3.1 字符串常用操作方法

字符串类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法。在本节内容中,着重介绍字符串的常用操作方法。

6.3.2 获取字符串长度

(1) len(str)

函数说明:

返回字符串str所包含的字符个数

代码实例:

python">"""
@author: 大神薯条老师
@desc: 执行len方法来统计字符串中的字符数
"""japanese = '''君のことを愛している'''
length = len(japanese)# length的值为10,表示字符串包含10个字符

6.3.3 字符串的大小写操作

(1) str.lower()

函数说明:

将字符串str中的大写字符全部转换为小写,返回一个字符串。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的lower方法
"""blessing = '2020 Is Getting BettER'
blessing = blessing.lower()
# blessing的值为'2020 is getting better'

(2) str.upper()

函数说明:

将字符串str中的小写字符全部转换为大写,返回一个字符串。

代码实例:

python">​​​​​​​"""
@author: 大神薯条老师
@desc: 字符串对象的upper方法
"""blessing = '2020 is getting better'
blessing = blessing.upper()
# blessing的值为'2020 IS GETTING BETTER'

(3) str.islower()

函数说明:

Python中的函数名或变量名前带上一个is的前缀,表示是否的意思,返回布尔类型。islower用来判断字符串中的字符是否都为小写, 如果都为小写,就返回True,否则返回False。这里的小写字符主要指拉丁字母。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的islower方法
"""blessing = '2020 is getting better'
result = blessing.islower()# result的值为True,字符串中的大小写字符均为小写

(4) str.isupper()

函数说明:

isupper函数用来判断字符串中的大小写字符是否都为大写,如果都为大写,就返回True,否则返回False。这里的大小写字符主要指拉丁字母。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的isupper方法
"""blessing = '2020 IS GETTING BETTER'
result = blessing.isupper()
# result的值为True, 所有字符均为大写

6.3.4 删除字符串中的指定字符

(1) str.strip(chars=None)

函数说明:

删除字符首尾的chars参数所代表的字符,不传递任何参数时,删除的是字符串首尾的连续的空白字符: 空格符,回车符,换行符等。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的strip方法
"""# 删除字符串首尾之连续的字符ablessing = 'aa2020 Is Getting BettERaa'.strip("a")
# blessing的值为'2020 Is Getting BettER'# 不传递参数时,删除的是首尾的连续的空白字符: 空格符,回车符,换行符等
blessing = '\n  2020 Is Getting BettER  '.strip()
# blessing的值为'2020 Is Getting BettER'

(2) str.lstrip()

函数说明:

函数名中的前缀l是单词left的简写,该方法用来删除字符串最左边的字符。不传递任何参数时,删除的是字符串最左边的连续的空白字符: 空格符,回车符,换行符等。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象lstrip方法
"""blessing = '\n\n  2020 Is Getting BettER  \n'.lstrip()
# blessing的值为'2020 Is Getting BettER  \n'  

(3) str.rstrip()

函数说明:

函数名中的前缀r是单词right的简写,该方法用来删除字符串最右边的字符,不传递任何参数时,删除的是字符串最右边的连续的空白字符: 空格符,回车符,换行符等。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的rstrip方法
"""blessing = '\n\n  2020 Is Getting BettER\r\n        '.rstrip()
# blessing的值为'\n\n  2020 Is Getting BettER'

6.3.5 字符串的子串查找

(1) str.find(sub)

函数说明:

从左到右查找子串第一次出现的位置,如果查找成功,返回子串在主串中的开始位置的索引,否则返回值为-1。这里的索引值同字符串索引访问中的索引值,Python中的索引值从0开始进行编号。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的find方法
"""blessing = '2020 is getting better and better'
index = blessing.find('better')
# index的值为16# 查找字符串变量blessing指向的字符串中是否包含bad luck字符串
if blessing.find('bad luck') != -1:# 如果返回的索引值不等于-1,说明包含betterprint('there is no bad luck in 2020')
else:print('there is bad luck in 2020')

(2) str.rfind(sub)

函数说明:

从右到左查找子串第一次出现的位置,如果查找成功,返回子串在主串中的开始位置的索引,否则返回值为-1

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的rfind方法
"""blessing = '2020 is getting better and better'
index = blessing.rfind('better')
# index的值为27# 查找字符串变量blessing指向的字符串中是否包含sad
if blessing.rfind('sad') != -1:# 如果返回的索引值不等于-1,说明包含betterprint('there is no sad in 2020')
else:print('there is a sad in 2020')

6.3.6 字符串的子串统计

(1) str.count(sub)

函数说明:

在字符串str中统计子串sub_str出现的次数,返回一个整型值。如果没有相应的子串,那么返回值为0。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的count方法
"""blessing = '2020 is getting better and better'
count = blessing.count('better')
# count的值为2

6.3.7 字符串的子串替换

(1) str.replace(old, new)

函数说明:

将字符串中子串替换为新的字符串,返回一个新的字符串。将参数old表示的子串替换为新的字符串new。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的replace方法
"""blessing = '2020 is getting better and better'
new_blessing = blessing.replace('2020','everything')
# new_blessing的值为'everything is getting better and better'

现在通过字符串的find方法,切片操作以及while循环结构来实现字符串对象的replace方法。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 通过find方法以及切片操作来实现字符串对象的replace方法
"""blessing = '2020 is getting better and enverything in 2020 is getting better -2020'
new_blessing = ''# 变量sub_str表示待替换的子串
sub_str = '2020'# 先通过len方法获取字符串的长度
length_of_sub = len(sub_str)# 变量dst_str表示替换后的子串
dst_str = 'everything'# right变量用来保存拆分后的右边部分的子串
right = blessingindex = blessing.find(sub_str)
# 判断index是否等于-1,如果等于-1就退出循环
while index !=-1:# 根据索引的起始位置,先将左边部分拆分出来left = blessing[:index]# 再根据索引的起始位置+子串的长度,将右边部分拆分出来right = blessing[index+length_of_sub:]new_blessing += left + dst_str# 继续查找子串的位置,继续下一轮的循环blessing = rightindex = blessing.find(sub_str)else:new_blessing += rightprint(new_blessing)

对于上面的代码实例,同学们可以结合下图进行理解:

image.png

中间部分表示待替换的子串,子串起始位置的左边部分则为left,子串尾部的右边部分则为right。

6.3.8 字符串的拆分函数

(1) str.split(sep=None, maxsplit=-1)

函数说明:

使用 sep作为分隔字符串,返回由sep字符串分隔后的字符串列表。 如果给出了 maxsplit,则最多进行 maxsplit 次拆分。 如果 maxsplit 未指定或为 -1,则不限制拆分次数。sep 参数可能由多个字符组成 (例如 '1@@2@@3'.split('@@') 将返回 ['1', '2', '3'])。

字符串对象执行split函数后的返回值为列表类型。

同学们可以在学完列表类型后,再回过头来理解这个split函数。

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的split方法
"""abc = "a$$b$$c" 
characters = abc.split("$")   # characters为['a', '', 'b', '', 'c']
characters = abc.split("$$")  # characters 为['a', 'b', 'c']

6.3.9 字符串的前缀与后缀

(1) str.startswith(prefix) 判断字符串是否以prefix子串作为前缀,返回值为布尔类型

(2) str.endswith(suffix)  判断字符串是否以suffix子串作为后缀,返回值为布尔类型

代码实例:

python">"""
@author: 大神薯条老师
@desc: 字符串对象的startswith与endswith方法
"""blessing = '2020 is getting better and better'
result = blessing.startswith("2020") 
# belessing以2020为前缀,返回Trueresult = blessing.endswith("better") 
# belessing以better为后缀,返回True

6.3.10 你一定要成为高手

跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。

薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客http://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。


http://www.ppmy.cn/news/1538356.html

相关文章

服务器开放ftp端口可能会被攻击吗?

服务器开放FTP(文件传输协议)端口确实可能会增加被攻击的风险。FTP是一种相对较老且不够安全的协议,因为它在传输数据时不加密,这使得数据容易在传输过程中被截获。以下是一些与开放FTP端口相关的主要安全风险: 1. 数据拦截:由于F…

AI金融攻防赛:金融场景凭证篡改检测(DataWhale组队学习)

引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的AI金融攻防赛学习总结文档。本文主要讲解如何解决 金融场景凭证篡改检测的核心问题,以及解决思路和代码实现过程。希望…

详解安卓和IOS的唤起APP的机制,包括第三方平台的唤起方法比如微信

网页唤起APP是一种常见的跨平台交互方式,它允许用户从网页直接跳转到移动应用程序。 这种技术广泛应用于各种场景,比如让用户在浏览器中点击链接后直接打开某个应用,或者从网页引导用户下载安装应用。实现这一功能主要依赖于URL Scheme、Univ…

通义灵码 Visual Studio 下载安装指南(附安装包)

文章目录 前言一、下载和安装指南方法 1:从插件市场安装方法 2:下载安装包安装方法 3:登录并开启智能编码之旅 二、使用指南总结 前言 通义灵码是基于通义大模型的智能编程辅助工具,它提供了多种强大的功能,旨在助力开…

C# string字符串常用处理方法

在C#中,处理字符串时可以使用许多不同的方法。 string.Concat: 用于连接两个或多个字符串。 string result string.Concat("Hello", " ", "World!"); string.Format: 用于格式化字符串,可以插入变…

Linux 安装 NVM 并配置 npm 加速,开发 node 项目不再愁

由于需要在 linux 机器上完成 node 项目的构建,需要安装 nodejs, 想着不同项目需要使用不同的版本,索性安装一下 nvm 吧,因为之前在 windows 上已经安装过 nvm-windows, 应该很容易上手,我尝试了官网提供的几种方式,最…

运维:winserver服务器添加nginx开机自启动

前言 发现之前做的一版windows开机自启动任务对nginx的启用无效,因此这里给出针对性的配置,以实现winserver服务器添加nginx开机自启动目的。 先前的配置方案:windows部署开机自启动服务_windows 服务中添加自行启动任务-CSDN博客 方案 1、进…

NVM 切换Node.js版本工具

大家好我是苏麟,今天聊聊NVM切换版本工具。 切换 node 版本工具 : GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions 查看node版本 node -v 查看 nvm 版本 nvm -v 查看可安装的Nod…