Python之字符串精讲(下)
前言
今天继续讲解字符串下半部分,内容包括字符串的检索、大小写转换、去除字符串中空格和特殊字符。
一、检索字符串
在Python中,字符串对象提供了很多用于字符串查找的方法,主要给大家介绍以下几种方法。
1. count() 方法
count() 方法用于检索指定字符串在另一个字符串中出现的次数。如果检索的字符串不存在,则返回 0,否则返回出现的次数。语法格式如下:
str.count(sub[, start[, end]])
参数说明:
- str:表示原字符串。
- sub:表示要检索的子字符串。
- start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。
- end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。
示例代码如下图所示:

2. find() 方法
该方法用于检索是否包含指定的子字符串。如果检索的字符串不存在,则返回 -1,如果存在,则返回首次出现该子字符串时的索引。语法格式如下:
str.find(sub[, start[, end]])
参数说明:
- str:表示原字符串。
- sub:表示要检索的子字符串。
- start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。
- end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。
示例代码如下图所示:

如果只是想要判断指定的字符串是否存在,可以使用 in 关键字实现。例如下图代码所示:

注意:字符串对象还提供了 rfind() 方法,其作用与 find() 方法类似,只是从字符串右边开始查找。
3. startwith() 方法
startwith() 方法用于检索字符串是否以指定子字符串开头。如果是则返回 True,否则返回 False。语法格式如下:
str.startwith(prefix[, start[, end]])
参数说明:
- str:表示原字符串。
- prefix:表示要检索的子字符串。
- start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。
- end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。
示例代码如下图所示:

4. endwith() 方法
endwith() 方法用于检索字符串是否以指定子字符串结尾。用法同 startwith() 方法一致,示例代码如下图所示:

二、字母的大小写转换
在Python中,字符串对象提供了 lower() 方法和 upper() 方法进行字母的大小写转换,即可用于将大写字母转换为小写字母或者将小写字母转换为大写字母。
1. lower() 方法
lower() 方法用于将字符串中的大写字母转换为小写字母。如果字符串中没有需要被转换的字符,则将原字符串返回,否则将返回一个新的字符串。语法格式如下:
str.lower()
其中,str 为要进行转换的字符串。代码示例如下图所示:

2. upper() 方法
upper() 方法用于将字符串中的小写字母转为大写字母,用法同 lower() 方法一致,代码示例如下图所示:

三、去除字符串中的空格和特殊字符
在一些情况下,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符。Python中字符串对象提供了 strip()、lstrip()、rstrip() 方法用于处理这些情况。
注意:这里的特殊字符是指制表符 \t、回车符 \r、换行符 \n 等。
1. strip() 方法
strip() 方法用于去掉字符串左、右两侧的空格和特殊字符,语法格式如下:
str.strip([chars])
参数说明:
- str:为要去除空格的字符串。
- chars:为可选参数,用于指定要去除的字符,可以指定多个。如果设置 chars 为 “et”,则去除左右两侧包括的 “e” 或 “t”。如果不指定 chars 参数,默认将去除空格和特殊字符。
示例代码如下图所示:

2. lstrip() 方法
lstrip() 方法用于去掉字符串左侧的空格和特殊字符,语法格式如下:
str.lstrip([chars])
参数说明:
- str:为要去除空格的字符串。
- chars:为可选参数,用于指定要去除的字符,可以指定多个。如果设置 chars 为 “et”,则去除左右两侧包括的 “e” 或 “t”。如果不指定 chars 参数,默认将去除空格和特殊字符。
示例代码如下图所示:

3. rstrip() 方法
rstrip() 方法用于去掉字符串右侧的空格和特殊字符,用法同 lstrip() 一致,代码示例如下图所示:

4. replace() 方法
上面我们学的三种方法只能用于处理字符串两边的空格及特殊字符,但是如果要去除中间的空格及指定字符怎么办呢?其实字符串对象提供了 replace() 方法可以处理该情况,replace() 方法用于替换字符串中所有的指定字符。语法格式如下:
str.replace(old, new)
参数说明:
- str:为要替换的字符串。
- old:表示字符串中要被替换的字符
- new:表示要替换原有字符的新字符
示例代码如下图所示:

相关文章:
Python之字符串精讲(下)
前言 今天继续讲解字符串下半部分,内容包括字符串的检索、大小写转换、去除字符串中空格和特殊字符。 一、检索字符串 在Python中,字符串对象提供了很多用于字符串查找的方法,主要给大家介绍以下几种方法。 1. count() 方法 count() 方法…...
Python图像卡通化animegan2-pytorch实例演示
先看下效果图: 左边是原图,右边是处理后的图片,使用的 face_paint_512_v2 模型。 项目获取: animegan2-pytorch 下载解压后 cmd 可进入项目地址的命令界面。 其中 img 是我自己建的,用于存放图片。 需要 torch 版本 …...
谢希仁版《计算机网络》期末总复习【完结】
文章目录说明第一章 计算机网络概述计算机网络和互联网网络边缘网络核心分组交换网的性能网络体系结构控制平面和数据平面第二章 IP地址分类编址子网划分无分类编址特殊用途的IP地址IP地址规划和分配第三章 应用层应用层协议原理万维网【URL / HTML / HTTP】域名系统DNS动态主机…...
问:React的useState和setState到底是同步还是异步呢?
先来思考一个老生常谈的问题,setState是同步还是异步? 再深入思考一下,useState是同步还是异步呢? 我们来写几个 demo 试验一下。 先看 useState 同步和异步情况下,连续执行两个 useState 示例 function Component() {const…...
深度理解机器学习16-门控循环单元
评估简单循环神经网络的缺点。 描述门控循环单元(Gated Recurrent Unit,GRU)的架构。 使用GRU进行情绪分析。 将GRU应用于文本生成。 基本RNN通常由输入层、输出层和几个互连的隐藏层组成。最简单的RNN有一个缺点,那就是它们不…...
Python中Generators教程
要想创建一个iterator,必须实现一个有__iter__()和__next__()方法的类,类要能够跟踪内部状态并且在没有元素返回的时候引发StopIteration异常. 这个过程很繁琐而且违反直觉.Generator能够解决这个问题. python generator是一个简单的创建iterator的途径…...
数据结构与算法基础-学习-10-线性表之栈的清理、销毁、压栈、弹栈
一、函数实现1、ClearSqStack(1)用途清理栈的空间。只需要栈顶指针和栈底指针相等,就说明栈已经清空,后续新入栈的数据可以直接覆盖,不用实际清理数据,提升了清理效率。(2)源码Statu…...
Leetcode 每日一题 1234. 替换子串得到平衡字符串
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
【MYSQL中级篇】数据库数据查询学习
🍁博主简介 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 相关文章 文章名文章地址【MYSQL初级篇】入门…...
华为OD机试真题JAVA实现【火星文计算】真题+解题思路+代码(20222023)
🔥系列专栏 华为OD机试(JAVA)真题目录汇总华为OD机试(Python)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出描述示例一输入输出说明解题思路核心知识点Code运行结果版...
Linux基础知识
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放࿰…...
Linux 游戏性能谁的 更优秀X.Org还是Wayland!
导读X.Org 和 Wayland 是目前 Linux 平台上的两大主流显示服务器,那么两者在 Linux 游戏性能上谁更优秀呢?国外科技媒体 Phoronix 在 Ubuntu 22.10 上对其进行了多款游戏的实测。评测在运行 GNOME 43.1 的 Ubuntu 22.10 上进行测试,在安装英伟…...
【数据结构】算法的复杂度分析:让你拥有未卜先知的能力
👑专栏内容:数据结构⛪个人主页:子夜的星的主页💕座右铭:日拱一卒,功不唐捐 文章目录一、前言二、时间复杂度1、定义2、大O的渐进表示法3、常见的时间复杂度三、空间复杂度1、定义2、常见的空间复杂度一、前…...
Linux根文件系统移植
目录 一、根文件系统 1.1根文件系统 1.2根文件系统内容 二、根文件系统移植 2.1BusyBox 2.2BusyBox的获取 2.3BusyBox的使用 2.4make menuconfig 2.5编译和安装 2.6修改根文件系统 一、根文件系统 1.1根文件系统 根文件系统是内核启动后挂载的第一个文件系统系统引…...
Three.js 无限平面快速教程【Plane】
Three.js 提供了 Plane 概念来表示在 3d 空间中无限延伸的二维表面。 这对于光标交互很有用,因此你可能需要了解如何设置此平面、将其可视化并根据需要进行调整。 推荐:使用 NSDT场景设计器 快速搭建 3D场景。 Three.js 的 Plane 文档很好而且准确&…...
在线预览PDF文件、图片,并且预览地址不显示文件或图片的真实路径。
实现在线预览PDF文件、图片,并且预览地址不显示文件或图片的真实路径。1、vue使用blob流在线预览PDF、图片(包括jpg、png等格式)。1、按钮的方法:2、方法详细:(此方法可以在发起请求时携带token,…...
Allegro如何设置导入Subdrawing可自由选择目录操作指导
Allegro如何设置导入Subdrawing可自由选择目录操作指导 用Allgro做PCB设计的时候,导入Subdrawing是非常常用的功能,在导入Subdrawing的时候,通常需要把Subdrawing文件放在需要导入PCB的相同目录下,不能自由选择,如下图 但是Allegro是支持自由选择目录的,只需按照下方的步…...
SpirngMVC执行原理--自学版
DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心,用户发出请求,DispatcherServlet接收请求并拦截请求HandlerMapper为处理器映射。DispatcherServlet调用。HandlerMapping根据请求url查找HandlerHandlerExecution表示具体的Handl…...
获取savemodel的输入输出节点
saved_model_cli show --dir savemodels --all 结果: MetaGraphDef with tag-set: ‘serve’ contains the following SignatureDefs: signature_def[‘translation_signature’]: The given SavedModel SignatureDef contains the following input(s): inputs[‘i…...
《Learning to Reconstruct Botanical Trees from Single Images》学习从单幅图像重建植物树
读书报告下载https://download.csdn.net/download/weixin_43042683/87448211论文原文https://dl.acm.org/doi/10.1145/3478513.3480525论文视频https://www.bilibili.com/video/BV1cb4y127Vp/?fromseopage&vd_source5212838c127b01db69dcc8b2d27ca5171引言植物存在在室外与…...
别再让代码异味溜走:手把手教你用SonarQube为团队搭建代码质量守护神
别再让代码异味溜走:手把手教你用SonarQube为团队搭建代码质量守护神 当项目规模从几千行扩展到几十万行代码时,技术债务就像房间里的大象——人人都知道存在,却少有人主动清理。去年我们团队在重构一个核心模块时,发现其中隐藏的…...
模块化前端框架设计:从原子状态到组合式架构的工程实践
1. 项目概述:一个轻量级、模块化的现代Web应用框架最近在梳理手头的几个前端项目,发现随着功能迭代,代码越来越臃肿,不同项目间的基础工具函数、状态管理逻辑、路由配置总是要重新写一遍,或者复制粘贴,维护…...
可视化监控大盘构建:Grafana搭配Prometheus的艺术
在软件测试领域,我们早已不满足于“功能正确”这一单一维度。性能表现、资源消耗、服务稳定性、异常预警……这些非功能质量属性正逐渐成为衡量系统成熟度的关键标尺。而要将这些隐性的、动态的指标转化为可感知、可决策的信息,一套高效、灵活的可视化监…...
2026 流量卡办理全攻略:从下单、激活到售后,新手一遍看懂不踩坑
现在人人都离不开手机流量,不管是日常刷视频、追剧观影,还是备用机上网冲浪,一张划算又正规的通用流量卡,已经成为大众刚需。但很多新手第一次在线办理优惠号卡,普遍一头雾水:分不清流量卡是否正规靠谱、办…...
从仿真到论文图表:手把手教你用FDTD参数扫描和Matlab处理WO3薄膜光学数据
从仿真到论文图表:FDTD参数扫描与Matlab数据可视化全流程解析 在光电材料研究中,WO₃薄膜因其优异的电致变色特性备受关注。当我们需要系统研究薄膜厚度对光学性能的影响时,FDTD Solutions的参数扫描功能配合Matlab的数据处理能力,…...
告别编译警告!MDK AC6编译器下STM32Cube FreeRTOS工程的__packed等语法适配指南
ARM Compiler v6下STM32Cube FreeRTOS工程的零警告优化实战 当你从ARM Compiler v5切换到v6时,可能会发现原本运行良好的STM32CubeMX生成的FreeRTOS工程突然冒出几十个编译警告。这些黄色的小三角虽然不会阻止程序编译,但对于追求代码质量的开发者来说&a…...
别再只盯着机械式了!一文看懂MEMS、Flash、OPA等固态激光雷达怎么选(附避坑指南)
固态激光雷达技术全景:从MEMS到OPA的实战选型策略 激光雷达技术正在经历一场静默革命——机械旋转部件逐渐被半导体芯片取代,就像当年电子管被晶体管淘汰的历史重演。在自动驾驶和机器人领域摸爬滚打多年的工程师都清楚,选择激光雷达就像在迷…...
CANN/asc-devkit asc_copy_gm2l1 API
asc_copy_gm2l1 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode…...
STM32CubeMX LL库定时器中断避坑指南:为什么你的中断不触发?
STM32CubeMX LL库定时器中断避坑指南:为什么你的中断不触发? 在嵌入式开发中,定时器中断是最基础也最常用的功能之一。然而,当开发者从标准库转向LL库(Low Layer Library)时,往往会遇到各种&quo…...
三大核心突破:构建企业级实时图表编辑系统的架构演进
三大核心突破:构建企业级实时图表编辑系统的架构演进 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor …...
