Python入门教程+项目实战-9.3节: 字符串的操作方法
目录
9.3.1 字符串常用操作方法
9.3.2 获取字符串长度
9.3.3 字符串的大小写操作
9.3.4 删除字符串中的空白字符
9.3.5 字符串的子串查找
9.3.6 字符串的子串统计
9.3.7 字符串的子串替换
9.3.8 字符串的拆分函数
9.3.9 字符串的前缀与后缀
9.3.10 知识要点
9.3.11 系统学习python
9.3.1 字符串常用操作方法
字符串类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法,在本节的内容中,着重介绍字符串的常用操作方法。

9.3.2 获取字符串长度
(1) len(str)
函数说明:
返回字符串str包含的字符个数
代码实例:
Python
# __desc__ = 执行len方法来统计字符串中的字符数japanese = '''君のことを愛している'''
length = len(japanese)
# length指向的值为10,表示字符串变量japanese包含10个字符
9.3.3 字符串的大小写操作
(1) str.lower()
函数说明:
将字符串str中的大小写字符全部转换为小写,返回一个字符串。
代码实例:
Python
# __desc__ = 执行lower方法将字母转换为小写字母blessing = '2020 Is Getting BettER'
blessing = blessing.lower()
# blessing指向的值为'2020 is getting better'
(2) str.upper()
函数说明:
将字符串str中的大小写字符全部转换为大写,返回一个字符串。
代码实例:
Python
# __desc__ = 执行upper方法将字母转换为大写字母blessing = '2020 is getting better'
blessing = blessing.upper()
# blessing指向的值为'2020 IS GETTING BETTER'
(3) str.islower()
函数说明:
Python中的函数名或变量名前带上一个is的前缀,表示是否的意思,返回布尔类型。islower用来判断字符串中的大小写字符是否都为小写, 如果都为小写,就返回True,否则返回False。这里的大小写字符主要指拉丁字母。
代码实例:
Python
# __desc__ = 执行islower方法来判断是否为小写字母blessing = '2020 is getting better'
result = blessing.islower()
# result指向的值为True,字符串中的大小写字符均为小写。result = 'i love u'.islower()
# result指向的值为True
(4) str.isupper()
函数说明:
isupper函数用来判断字符串中的大小写字符是否都为大写,如果都为大写,就返回True,否则返回False。这里的大小写字符主要指拉丁字母。
代码实例:
Python
# __desc__ = 执行isupper方法来判断是否为大写字母blessing = '2020 IS GETTING BETTER'
result = blessing.isupper()
# result指向的值为True,所有大小写字符均为大写result = 'I LOVE U'.isupper()
# result指向的值为True
9.3.4 删除字符串中的空白字符
(1) str.strip()
函数说明:
删除字符串首尾的空白字符,返回一个首尾不包含空白字符的新字符串。
代码实例:
Python
# __desc__ = 执行strip方法来删除首尾的空白字符blessing = '\n2020 Is Getting BettER '.strip()
# blessing指向的值为'2020 Is Getting BettER'
(2) str.lstrip()
函数说明:
函数名中的前缀l是单词left的简写,该方法用来删除字符串最左边的空白字符,返回一个首部不包含空白字符的新字符串。
代码实例:
Python
# __desc__ = 执行lstrip方法来删除首部的空白字符blessing = '\n\n 2020 Is Getting BettER '.lstrip()
# blessing指向的值为'2020 Is Getting BettER '
(3) str.rstrip()
函数说明:
函数名中的前缀r是单词right的简写,该方法用来删除字符串最右边的空白字符,返回一个尾部不包含空白字符的新字符串。
代码实例:
Python
# __desc__ = 执行rstrip方法来删除尾部的空白字符blessing = '\n\n 2020 Is Getting BettER\r\n '.rstrip()
# blessing指向的值为'\n\n 2020 Is Getting BettER'
9.3.5 字符串的子串查找
(1) str.find(sub)
函数说明:
从左到右查找子串第一次出现的位置,如果查找成功,返回子串在主串中的开始位置的索引,否则返回值为-1。这里的索引值同字符串索引访问中的索引值,Python中的索引值从0开始进行编号。
代码实例:
Python
# __desc__ = 执行rfind方法来查找子串是否存在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
# __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')
9.3.6 字符串的子串统计
(1) str.count(sub)
函数说明:
在字符串str中统计子串sub_str出现的数量,返回一个整型值。如果没有相应的子串,那么返回的值为0。
代码实例:
Python
# __desc__ = 执行count方法来计算子串的数目blessing = '2020 is getting better and better'
count = blessing.count('better')
# count的值为2
现在通过字符串的find方法,切片操作,以及while循环结构来实现count方法的功能。
代码实例:
Python
# __desc__ = 通过find方法,以及切片操作来实现count方法的功能blessing = '2020 is getting better and better'
count = 0index = blessing.find('better')# 判断index是否等于-1,如果等于-1就退出循环
while index !=-1:# index不等于-1,说明查找到了子串count += 1# 查找到子串以后,再从子串开始位置+子串长度的新位置处开始切片blessing = blessing[index+len('better'):]# 继续查找子串的位置index = blessing.find('better')
else:print(count)
9.3.7 字符串的子串替换
(1) str.replace(old, new)
函数说明:
将字符串中子串替换为新的字符串,返回一个新的字符串。将参数old表示的子串替换为新的字符串new。
代码实例:
Python
# __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
# __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)
对于上面的代码实例,同学们可以结合下图进行理解:

中间部分表示待替换的子串,子串起始位置的左边部分则为left,子串尾部的右边部分则为right。
9.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
# __desc__ = 通过split方法对字符串进行拆分abc = "a$$b$$c"
characters = abc.split("$") # characters为['a', '', 'b', '', 'c']
characters = abc.split("$$") # characters 为['a', 'b', 'c']
9.3.9 字符串的前缀与后缀
(1)str.startswith(prefix) 判断字符串是否以prefix子串作为前缀,返回值为布尔类型
(2)str.endswith(suffix) 判断字符串是否以suffix子串作为后缀,返回值为布尔类型
代码实例:
Python
# __desc__ = 判断字符串的前缀与后缀blessing = '2020 is getting better and better'
result = blessing.startswith("2020")
# belessing以2020为前缀,返回Trueresult = blessing.endswith("better")
# belessing以better为前缀,返回True
9.3.10 知识要点
(1)字符串类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法
(2)len方法是一个全局方法,用来返回复合数据类型的元素数目。
(3)Python中的函数名或变量名前带上一个is的前缀,表示是否的意思
(4)回车符,换行符,制表符,空格符等都是空白字符
9.3.11 最具实力的小班培训
薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。
相关文章:
Python入门教程+项目实战-9.3节: 字符串的操作方法
目录 9.3.1 字符串常用操作方法 9.3.2 获取字符串长度 9.3.3 字符串的大小写操作 9.3.4 删除字符串中的空白字符 9.3.5 字符串的子串查找 9.3.6 字符串的子串统计 9.3.7 字符串的子串替换 9.3.8 字符串的拆分函数 9.3.9 字符串的前缀与后缀9.3.10 知识要点 9.3.11 系…...
ENVI 5.6软件安装教程
软件下载 [软件名称]:ENVI 5.6 [软件大小]:3.25G [安装环境]:Win7~Win11或更高 软件介绍 ENVI 5.6是一款实现遥感图像处理的工具,已经广泛应用于科研、环境保护、气象、石油矿产勘探、农业、林业、医学、地球科学、公用设施管…...
在Windbg中设置断点追踪打开C++程序远程调试开关的模块
目录 1、Windbg动态调试 2、在Windbg中设置断点 2.1、在函数入口处设置断点 2.2、在函数内部某一行上设置断点 3、设置断点跟踪对打开远程调试开关接口的调用 3.1、编写演示代码 3.2、在Windbg中设置调用SetRemoteDebugOn接口的断点进行跟踪 4、最后 VC常用功能开发汇总…...
CRM客户管理软件开发功能有哪些?
互联网技术的不断提高使得企业管理方式也发生了变化,企业CRM系统应用市场逐渐扩大,相关软件开发也引起越来越多商家企业的关注。因为企业CRM系统软件开发能够根据企业需求制作,帮助企业更好的追踪管理客户信息,实时更新并进行相关…...
C++函数式魔法之旅(Journey of Functional Magic)
C函数式魔法之旅(Journey of Functional Magic) 一、引言(Introduction)C Functional模板库简介(Overview of C Functional Template Library)Functional模板库的重要性和作用(The Importance a…...
Vue基础入门(上)
<script src"https://unpkg.com/vuenext"></script> 从面向dom编程到面向数据编程 输入显示列表 const appVue.createApp({data(){return{inputValue:,list:[]}},methods:{handleAddItem(){this.list.push(this.inputValue);this.inputValue;}},templ…...
字符串匹配—KMP算法
字符串匹配的应用非常广泛,例如在搜索引擎中,我们通过键入一些关键字就可以得到相关的搜索结果,搜索引擎在这个过程中就使用字符串匹配算法,它通过在资源中匹配关键字,最后给出符合条件的搜索结果。并且我们在使用计算…...
【微信小程序】 权限接口梳理以及代码实现
1、权限接口说明 官方权限说明 部分接口需要经过用户授权统一才能调用。我们把这些接口按使用范围分成多个scope,用户选择对scope进行授权,当授权给一个scope之后,其对应的所有接口都可以直接使用。 此类接口调用时: 如…...
【每日一词】leit-motif
1、释义 leit-motif: n. 主乐调;主题;主旨。 复数:leit-motifs 2、例句 Hence the ‘ancient’ rhyme that appears as the leit-motif of The Lord of the Rings, Three Rings for the Elven-Kings under the sky, Seven for the Dwarf-lor…...
windows 环境修改 Docker 存储目录
windows 环境修改存储目录 docker 安装时不提供指定安装路径和数据存储路径的选项,且默认是安装在C盘的。C盘比较小的,等docker运行久了,一大堆的东西放在上面容易导致磁盘爆掉。所以安装前可以做些准备,让安装的实际路径不在C盘&…...
上海市青少年算法月赛丙组—目录汇总
上海市青少年算法2023年3月月赛(丙组) T1 神奇的字母序列 T2 约数的分类 T3 循环播放 T4 数对的个数 T5 选取子段 上海市青少年算法2023年2月月赛(丙组) T1 格式改写 T2 倍数统计 T3 区间的并 T4 平分数字(一…...
手动实现promise.all
手动实现promise.all function promiseAll(promises) {return new Promise((resolve, reject) > {const results [];let count 0;promises.forEach((promise, index) > {Promise.resolve(promise).then(result > {results[index] result;count;if (count promise…...
如何搭建关键字驱动自动化测试框架?这绝对是全网天花板的教程
目录 1. 关键字驱动自动化测试介绍 2. 搭建关键字驱动自动化测试框架 步骤1:选择测试工具 步骤2:定义测试用例 步骤3:编写测试驱动引擎 步骤4:实现测试关键字库 步骤5:执行测试 3. 实现关键字驱动自动化测试的关…...
字符串反转操作
1:将字符串反转 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母…...
TensorFlow 智能移动项目:1~5
原文:Intelligent mobile projects with TensorFlow 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只…...
[MAUI 项目实战] 手势控制音乐播放器(四):圆形进度条
文章目录 关于图形绘制创建自定义控件使用控件创建专辑封面项目地址 我们将绘制一个圆形的音乐播放控件,它包含一个圆形的进度条、专辑页面和播放按钮。 关于图形绘制 使用MAUI的绘制功能,需要Microsoft.Maui.Graphics库。 Microsoft.Maui.Graphics 是…...
web路径专题+会话技术
目录 自定义快捷键 1. 工程路径问题及解决方案1.1 相对路径1.2 相对路径缺点1.3 base标签1.4 作业11.5 作业21.6注意细节1.7 重定向作业1.8 web工程路径优化 2. Cookie技术2.1 Cookie简单示意图2.2 Cookie常用方法2.2 Cookie创建2.3 Cookie读取2.3.1 JSESSIONID2.3.2 读取指定C…...
Jetpack Compose 实战 宝可梦图鉴
文章目录 前言实现效果一、架构介绍二、一些的功能点的介绍加载图片并获取主色,再讲主色设置为背景一个进度缓慢增加的圆形进度条单Activity使用navigation跳转Compose可组合项返回时页面重组的问题hiltViewModel() 主要参考项目总结 前言 阅读本文需要一定compose基础&#x…...
高效时间管理日历 DHTMLX Event Calendar 2.0.3 Crack
DHTMLX Event Calendar用于高效时间管理的轻量级 JavaScript 事件日历 DHTMLX 可帮助您开发类似 Google 的 JavaScript 事件日历,以高效地组织约会。 用户可以通过拖放来管理事件,并以六种不同的模式显示它们。 JavaScript 事件日历功能 轻的简单的 Java…...
ASIC-WORLD Verilog(2)FPGA的设计流程
写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----asic-world网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。 这是网站原文&…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
