Python(七十七)字符串的常用操作——字符串的查询操作

news2025/3/1 9:54:56

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。
☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是对编程感兴趣的爱好者,都能从中受益。跟着我的学习笔记一起学习python吧。
🌙专栏目标:本专栏的目标是帮助我自己记忆、方便回顾所学知识以及帮助其他想学习python的小伙伴掌握Python编程语言的基本概念和技巧,并逐步提高我们的编程能力。通过这个专栏,我们将学会如何编写Python代码,理解各种数据类型、控制结构和函数,掌握常用的Python模块和库,以及应用Python解决实际问题。

⭐️ 专栏主要内容: 主要学习python的开发环境搭建;Python的基础知识,包括变量、数据类型、条件语句和循环等;python的数据结构和算法;python的函数和模块;python的文件处理等。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:从零开始的Python入门之路

在这里插入图片描述

在Python中,字符串是一种常见的数据类型,用于表示文本数据。在处理字符串时,我们经常需要进行查询操作,以查找特定的子字符串或获取字符串中某个字符的位置。

文章目录

    • 字符串的查询操作
    • index()方法
    • rindex()方法
    • find()方法
    • rfind()方法

字符串的查询操作

在这里插入图片描述
下面会详细介绍4个函数的用法。

index()方法

index()方法用于返回字符串中指定子字符串的第一个匹配位置。如果找不到该子字符串,将会引发一个ValueError异常。

下面是index()方法的语法:

str.index(sub[, start[, end]])
  • sub:要查找的子字符串。
  • start(可选):查找的起始位置,默认为0。
  • end(可选):查找的结束位置,默认为字符串的长度。

让我们来看一个例子:

# 定义一个字符串
my_string = "Hello, World!"

# 使用index()方法查找子字符串"World"
index = my_string.index("World")

print("子字符串'World'的索引位置:", index)

输出结果:

子字符串'World'的索引位置: 7

在上面的例子中,我们定义了一个字符串my_string,然后使用index()方法查找子字符串"World"的索引位置。由于"World"在字符串中存在,因此返回了它的索引位置7。

如果要查找的子字符串不存在,index()方法将引发ValueError异常。下面是一个示例:

# 定义一个字符串
my_string = "Hello, World!"

try:
    # 使用index()方法查找子字符串"Python"
    index = my_string.index("Python")
    print("子字符串'Python'的索引位置:", index)
except ValueError:
    print("未找到子字符串'Python'")

输出结果:

未找到子字符串'Python'

在上面的例子中,我们尝试使用index()方法查找子字符串"Python"的索引位置。由于该子字符串不存在于原始字符串中,因此引发了ValueError异常。为了避免程序崩溃,我们使用了异常处理来捕获并处理该异常。

rindex()方法

rindex()方法与index()方法类似,但它返回的是指定子字符串的最后一个匹配位置。如果找不到该子字符串,同样会引发一个ValueError异常。

下面是rindex()方法的语法:

str.rindex(sub[, start[, end]])
  • sub:要查找的子字符串。
  • start(可选):查找的起始位置,默认为0。
  • end(可选):查找的结束位置,默认为字符串的长度。

让我们来看一个例子:

# 定义一个字符串
my_string = "Hello, World!"

# 使用rindex()方法查找子字符串"o"
index = my_string.rindex("o")

print("子字符串'o'的索引位置:", index)

输出结果:

子字符串'o'的索引位置: 8

在上面的例子中,我们使用rindex()方法查找子字符串"o"的索引位置。由于"o"在字符串中多次出现,但我们只获取最后一个匹配位置,因此返回了索引位置8。

如果要查找的子字符串不存在,rindex()方法将引发ValueError异常。下面是一个示例:

# 定义一个字符串
my_string = "Hello, World!"

try:
    # 使用rindex()方法查找子字符串"Python"
    index = my_string.rindex("Python")
    print("子字符串'Python'的索引位置:", index)
except ValueError:
    print("未找到子字符串'Python'")

输出结果:

未找到子字符串'Python'

在上面的例子中,我们尝试使用rindex()方法查找子字符串"Python"的索引位置。由于该子字符串不存在于原始字符串中,因此引发了ValueError异常。

find()方法

find()方法与index()方法类似,用于在字符串中查找指定子字符串的第一个匹配位置。但与index()方法不同的是,如果找不到该子字符串,find()方法将返回-1,而不会引发异常。

下面是find()方法的语法:

str.find(sub[, start[, end]])
  • sub:要查找的子字符串。
  • start(可选):查找的起始位置,默认为0。
  • end(可选):查找的结束位置,默认为字符串的长度。

让我们来看一个例子:

# 定义一个字符串
my_string = "Hello, World!"

# 使用find()方法查找子字符串"World"
index = my_string.find("World")

print("子字符串'World'的索引位置:", index)

输出结果:

子字符串'World'的索引位置: 7

在上面的例子中,我们使用find()方法查找子字符串"World"的索引位置。由于"World"在字符串中存在,因此返回了它的索引位置7。

如果要查找的子字符串不存在,find()方法将返回-1。下面是一个示例:

# 定义一个字符串
my_string = "Hello, World!"

# 使用find()方法查找子字符串"Python"
index = my_string.find("Python")

print("子字符串'Python'的索引位置:", index)

输出结果:

子字符串'Python'的索引位置: -1

在上面的例子中,我们使用find()方法查找子字符串"Python"的索引位置。由于该子字符串不存在于原始字符串中,因此返回了-1。

rfind()方法

rfind()方法与find()方法类似,但它返回的是指定子字符串的最后一个匹配位置。如果找不到该子字符串,rfind()方法将返回-1。

下面是rfind()方法的语法:

str.rfind(sub[, start[, end]])
  • sub:要查找的子字符串。
  • start(可选):查找的起始位置,默认为0。
  • end(可选):查找的结束位置,默认为字符串的长度。

让我们来看一个例子:

# 定义一个字符串
my_string = "Hello, World!"

# 使用rfind()方法查找子字符串"o"
index = my_string.rfind("o")

print("子字符串'o'的索引位置:", index)

输出结果:

子字符串'o'的索引位置: 8

在上面的例子中,我们使用rfind()方法查找子字符串"o"的索引位置。由于"o"在字符串中多次出现,但我们只获取最后一个匹配位置,因此返回了索引位置8。

如果要查找的子字符串不存在,rfind()方法将返回-1。下面是一个示例:

# 定义一个字符串
my_string = "Hello, World!"

# 使用rfind()方法查找子字符串"Python"
index = my_string.rfind("Python")

print("子字符串'Python'的索引位置:", index)

输出结果:

子字符串'Python'的索引位置: -1

在上面的例子中,我们使用rfind()方法查找子字符串"Python"的索引位置。由于该子字符串不存在于原始字符串中,因此返回了-1。

  • Python字符串文档
  • Python字符串查询操作教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/862135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT的信号槽的四种写法和五种链接方式

目录 四种信号槽写法: 五种连接方式: 实例: 常见错误及改正: 错误1: 未连接信号与槽 错误2: 信号和槽参数不匹配 错误3: 未使用Q_OBJECT宏 错误4: 跨线程连接未处理 在Qt中,信号(Signal&#xff09…

【Three.js】遮挡剔除

背景 考虑到场景中模型顶点过多会让fps过低,所以想把相机看不到的模型从场景中移除,来提高渲染性能,但是后续测试结果让我恍然大悟。虽然场景中的顶点数降低了很多,但是每次渲染检查遮挡的过程本身就是一个消耗性能的行为&#x…

Ae 效果:CC Sphere

透视/CC Sphere Perspective/CC Sphere CC Sphere(CC 球体)效果可将图层映射到受光照的球体上。支持 Alpha 通道,球体可呈镂空状且能显示和调整内壁。 要注意,虽然本效果可生成一个非常生动的 3D 球体外观,但仍然是一个…

还在纠结QLC?Solidigm 61.44TB SSD交出了一份漂亮答卷

说起SSD,你最关心的是哪方面?容量大小?价格高低?性能快慢?寿命长短? 相信很多用户,尤其是懂技术、有追求的用户,还会非常在意NAND闪存颗粒的类型: SLC早已几乎销声匿迹&a…

为什么重写equals方法时必须重写hashcode方法

与 equals的区别 如果两个引用类型变量使用运算符,那么比较的是地址,它们分别指向的是否是同一地址的对象,结果一定是false,因为两个对象地址必然不同。 不能实现比较对象的值是否相同。 所有对象都有equals方法,默认…

车载Tbox-CAN终端数据采集实现方案

因工作关系有机会与一家做汽车数据采集公司的Tbox终端产品做数据对接。 这个产品通过can口与汽车总线交换数据,再将采集的数据打包通过4G以tcp报文发送到云端。云端通过解析、格式转换后保存到数据库。 本文介绍用nodejs实现tcp报文的解析,报文描述如下…

推荐 4 个 yyds 的 GitHub 项目

本期推荐开源项目目录: 1. 开源的 Markdown 编辑器 2. MetaGPT 3. SuperAGI 4. 一个舒适的笔记平台 01 开源的 Markdown 编辑器 Cherry 是腾讯开源的 Markdown 编辑器,基于 Javascript具有轻量简洁、易于扩展等特点, 它可以运行在浏览器或服…

SAP Fiori 问题收集

事务代码篇 启动工作台:/N/UI2/FLP 错误日志: /n/IWFND/ERROR_LOG 服务清单: /n/IWFND/MAINT_SERVICE 创建语义对象:/N/UI2/SEMOBJ 创建目录:/N/UI2/FLPD_CONF(cross-client)或 /N/UI2…

Vc - Qt - 绘制绿色矩形

要在Qt中绘制一个绿色矩形&#xff0c;您需要创建一个自定义的QWidget或QGraphicsView类&#xff0c;在其绘制事件中使用QPainter来绘制形状。 以下是一个简单的示例&#xff0c;演示如何在QWidget中绘制一个绿色矩形&#xff1a; #include <QWidget> #include <QPain…

小版本更新kubernetes

小版本更新kubernetes 背景 最近一段时间躺平了没有更新我的博客文档。感谢各位小伙伴一直以来的支持。 此脚本基于 https://github.com/cby-chen/Kubernetes/ 仓库内的安装部署文档。此脚本仅会升级k8s相关组件其他组件不进行升级。使用此脚本 务必是使用 该文档进行部署的集…

【Python从小白到高手】---函数基础

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【Python小白从入门到精通】&#x1f388; 本专栏旨在分享学习Python的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录…

SpringBoot系列---【SpringBoot在多个profiles环境中自由切换】

SpringBoot在多个profiles环境中自由切换 1.在resource目录下新建dev&#xff0c;prod两个目录&#xff0c;并分别把dev环境的配置文件和prod环境的配置文件放到对应目录下&#xff0c;可以在配置文件中指定激活的配置文件&#xff0c;也可以默认不指定。 2.在pom.xml中最后位置…

【C++类和对象】类有哪些默认成员函数呢?(上)

目录 1. 类的6个默认成员函数 2. 构造函数(*^▽^*) 2.1 概念 2.2 特性 3. 析构函数(*^▽^*) 3.1 概念 3.2 特性 4. 拷贝构造函数(*^▽^*) 4.1 概念 4.2 特性 5. 赋值运算符重载(*^▽^*) 5.1 运算符重载 5.2 赋值运算符重载 ヾ(๑╹◡╹)&#xff89;"人总要为…

uniapp 左右滑动切换页面并切换tab

实现效果如图 要实现底部内部的左右滑动切换带动上方tab栏的切换&#xff0c;并且下方内容要实现纵向滚动 &#xff0c;所以需要swiper&#xff0c;swiper-item,scroll-view组合使用 tab栏部分 <view class"tabs"><view class"tab_item" v-for&…

Nvidia显卡驱动、CUDA、cuDNN、Anaconda及Tensorflow-GPU版本

Nvidia显卡驱动、CUDA、cuDNN、Anaconda及Tensorflow-GPU版本 一、确定版本关系二、安装过程1.安装显卡驱动2、安装CUDA3、安装cudnn4、安装TensorFlow 三、卸载 一、确定版本关系 1、CUDA与显卡驱动 https://www.nvidia.com/Download/index.aspx 2、cuDNN Toolkit与CUDA版本…

【雕爷学编程】Arduino动手做(12)---霍尔磁场传感器模块4

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

springboot第35集:微服务与flutter安卓App开发

Google Playplay.google.com/apps/publis…[1]应用宝open.qq.com/[2]百度手机助手app.baidu.com/[3]360 手机助手dev.360.cn/[4]vivo 应用商店dev.vivo.com.cn/[5]OPPO 软件商店&#xff08;一加&#xff09;open.oppomobile.com/[6]小米应用商店dev.mi.com/[7]华为应用市场dev…

摆动序列——力扣376

文章目录 题目描述贪心题目描述 贪心 int wiggleMaxLength(vector<int>& nums){int n=nums.

Stable Diffusion基础:ControlNet之人体姿势控制

在AI绘画中精确控制图片是一件比较困难的事情&#xff0c;不过随着 ControlNet 的诞生&#xff0c;这一问题得到了很大的缓解。 今天我就给大家分享一个使用Stable Diffusion WebUI OpenPose ControlNet 复制照片人物姿势的方法&#xff0c;效果可以参考上图。 OpenPose 可以…

将vsCode 打开的多个文件分行(栏)排列,实现全部显示,便于切换文件

目录 1. 前言 2. 设置VsCode 多文件分行(栏)排列显示 1. 前言 主流编程IDE几乎都有排列切换选择所要查看的文件功能&#xff0c;如下为Visual Studio 2022的该功能界面&#xff1a; 图 1 图 2 当在Visual Studio 2022打开很多文件时&#xff0c;可以按照图1、图2所示找到自…