当前位置: 首页 > news >正文

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算法

字符串匹配的应用非常广泛&#xff0c;例如在搜索引擎中&#xff0c;我们通过键入一些关键字就可以得到相关的搜索结果&#xff0c;搜索引擎在这个过程中就使用字符串匹配算法&#xff0c;它通过在资源中匹配关键字&#xff0c;最后给出符合条件的搜索结果。并且我们在使用计算…...

【微信小程序】 权限接口梳理以及代码实现

​ 1、权限接口说明 官方权限说明   部分接口需要经过用户授权统一才能调用。我们把这些接口按使用范围分成多个scope&#xff0c;用户选择对scope进行授权&#xff0c;当授权给一个scope之后&#xff0c;其对应的所有接口都可以直接使用。 此类接口调用时&#xff1a; 如…...

【每日一词】leit-motif

1、释义 leit-motif: n. 主乐调&#xff1b;主题&#xff1b;主旨。 复数&#xff1a;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 安装时不提供指定安装路径和数据存储路径的选项&#xff0c;且默认是安装在C盘的。C盘比较小的&#xff0c;等docker运行久了&#xff0c;一大堆的东西放在上面容易导致磁盘爆掉。所以安装前可以做些准备&#xff0c;让安装的实际路径不在C盘&…...

上海市青少年算法月赛丙组—目录汇总

上海市青少年算法2023年3月月赛&#xff08;丙组&#xff09; T1 神奇的字母序列 T2 约数的分类 T3 循环播放 T4 数对的个数 T5 选取子段 上海市青少年算法2023年2月月赛&#xff08;丙组&#xff09; T1 格式改写 T2 倍数统计 T3 区间的并 T4 平分数字&#xff08;一&#xf…...

手动实现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&#xff1a;选择测试工具 步骤2&#xff1a;定义测试用例 步骤3&#xff1a;编写测试驱动引擎 步骤4&#xff1a;实现测试关键字库 步骤5&#xff1a;执行测试 3. 实现关键字驱动自动化测试的关…...

字符串反转操作

1:将字符串反转 给定一句英语&#xff0c;要求你编写程序&#xff0c;将句中所有单词的顺序颠倒输出。 输入格式&#xff1a; 测试输入包含一个测试用例&#xff0c;在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成&#xff0c;其中单词是由英文字母…...

TensorFlow 智能移动项目:1~5

原文&#xff1a;Intelligent mobile projects with TensorFlow 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff0c;只…...

[MAUI 项目实战] 手势控制音乐播放器(四):圆形进度条

文章目录 关于图形绘制创建自定义控件使用控件创建专辑封面项目地址 我们将绘制一个圆形的音乐播放控件&#xff0c;它包含一个圆形的进度条、专辑页面和播放按钮。 关于图形绘制 使用MAUI的绘制功能&#xff0c;需要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 事件日历&#xff0c;以高效地组织约会。 用户可以通过拖放来管理事件&#xff0c;并以六种不同的模式显示它们。 JavaScript 事件日历功能 轻的简单的 Java…...

ASIC-WORLD Verilog(2)FPGA的设计流程

写在前面 在自己准备写一些简单的verilog教程之前&#xff0c;参考了许多资料----asic-world网站的这套verilog教程即是其一。这套教程写得极好&#xff0c;奈何没有中文&#xff0c;在下只好斗胆翻译过来&#xff08;加了自己的理解&#xff09;分享给大家。 这是网站原文&…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;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哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...