find()方法——字符串首次出现的索引位置

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

语法参考

find()方法实现查询一个字符串在其本身字符串对象中首次出现的索引位置,如起始位置从11到结束位置17之间子字符串出现的位置,如图1所示。如果没有检索到该字符串,则返回-1。

图1  find()方法示意图

find()方法的语法格式如下:

str.find(sub,start,end)

参数说明:

l  str:表示原字符串。

l  sub:表示要检索的子字符串。

l  start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。

l  end :可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾。

例如,子字符串o在字符串www.mingrisoft.com起始位置从11到结束位置17之间首次出现的位置,如图2所示。

图2  字符串首次出现的位置

    快用锦囊

锦囊1  检索邮箱地址中“@”首次出现中的位置

定义一个字符串,然后应用find()方法检索邮箱地址中首次出现“@”符号的位置索引,代码如下:

str1 = '790129881@qq.com'

print('@首次出现的位置为:',str1.find('@'))

运行程序,输出结果为:

@首次出现的位置为: 9

如果邮箱地址中没有“@”,则返回值为-1,此时可以判断邮箱地址不正确并提示用户输入正确的邮箱地址。

说明:Python的字符串对象还提供了rfind()方法,其作用与find()方法类似,只是从字符串右边开始查找。

锦囊2  提取括号内数据

日常处理数据过程中,有时需要提取括号内的数据,例如图3所示括号内的手机号。

图3  提取括号内的手机号

下面使用find()方法查找括号所在位置,然后使用切片方法提取括号内的手机号,代码如下:

str1 = '张三(13566688888)'

l1=str1.find('(')

l2=str1.find(')')

print(str1[l1+1:l2])

运行程序,结果为:

13566688888

锦囊3  从邮箱地址提取ID并将首字母大写

一般情况下,邮箱地址都是由ID和服务器地址组成,那么通过邮箱地址就可以提取到ID或服务器地址。例如,提取ID并将首字母大写,效果如图4所示。

图4  邮箱地址

下面使用find()方法查找字符串中“@”的位置,然后使用切片方法提取ID并通过capitalize()方法设置首字母大写,代码如下:

file1 = open('./tmp/email.txt', 'r')

for value1 in file1.readlines():

    l=value1.find('@')

    print(value1[0:l].capitalize())

file1.close()

运行程序,结果为:

Gcytom

Jackeer

Mingrisoft

Mrkj_2019

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Profinet IO从站数据 转EtherCAT项目案例

这里是引用 目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 使用PRONETA软件获取PROFINET IO从站的配置信息 2 5 设置网关采集PROFINETIO从站设备数据 5 6 启动ETHERCAT从站转发采集的数据 8 7 选择槽号和数据地址 9 8 选择子槽号 11 9 案例总结 12 1 案例说明 设置…

【shell脚本实战案例】主机状态监控脚本

文章目录 案例需求脚本应用场景解决问题脚本思路实现代码 🌈你好呀!我是 山顶风景独好 🎈欢迎踏入我的博客世界,能与您在此邂逅,真是缘分使然!😊 🌸愿您在此停留的每一刻&#xff0c…

统计信号处理基础 习题解答11-6

题目 考虑例11.1对WGN中单个正弦信号的数据模型,将模型重写为 其中: ,证明A的PDF是瑞丽的,的PDF是,且和是相互独立的。 解答 根据例11.1: 由于N维联合高斯分布为: 由: 因此&#…

ProfibusDP主站转Modbus模块连接称重仪配置案例

在工业自动化领域,常常需要将不同协议的设备进行连接。比如,将ProfibusDP主站转Modbus模块(XD-MDPBM20)用于连接称重仪,可以实现不同设备之间的数据交换和通信。ProfibusDP主站转Modbus网关(XD-MDPBM20&…

一招教你用python代码给朋友写一个爱心代码

有人问我马上要跟女朋友一周年了,能不能用代码给他写一个爱心代码呢?那算你问对人了,来上才艺 可以使用Python的turtle模块来绘制一个爱心形状。下面是一个简单的示例代码,我将详细解释每一步: import turtle # 创建一…

(已解决)Adobe Flash Player已不再受支持

文章目录 前言解决方案 前言 一般来说,很少遇到官方网站使用Adobe Flash Player来进行录用名单公示了。但是,今天就偏偏遇到一次, 用谷歌浏览器打不开, 点了没有反应,用其他的浏览器,例如windows自带的那…

【方案+源码】srm供应商招投标管理系统建设方案及源码实现

SRM供应商管理系统功能建设涵盖: 供应商管理:整合供应商信息,实现全生命周期管理。 采购需求管理:精准把握采购需求,优化采购计划。 采购寻源管理:智能寻源,匹配最佳供应商。 采购合同管理&…

【nvm】如何使用nvm优雅的管理Node.js

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、什么是nvm?2.1 概念2.1 安装2.1.1 对于Mac系统2.1.2 对于Windows系统2.1.3 对于…

AWS云中的VPC启用流日志保存S3(AWS中国云)

问题 需要在AWS中国云中对VPC启用流日志操作。 步骤 创建s3桶 这里设置一个s3桶名,创建即可。如果出现已存在具有相同名称的存储桶错误,就换个桶名再试一试吧。 启用vpc流日志 找到vpc流日志入口操作,如下图: 设置vpc流日志…

Redis的使用和原理

目录 1.初识Redis 1.1 Redis是什么? 1.2 Redis的特性 1.2.1 速度快 1.2.2 基于键值对的数据结构服务器 1.2.3 丰富的功能 1.2.4 简单稳定 1.2.5 持久化 1.2.6 主从复制 1.2.7 高可用和分布式 1.3 Redis的使用场景 1.3.1 缓存 1.3.2 排行榜系统 1.3.3 计数器应用 1.3…

制定班规要注意哪些事项

对于如何管理班级,制定班规是一项至关重要的任务。关系到班级的日常秩序,影响着学生的集体荣誉感。制定班规并非易事,需要深思熟虑和周全考虑。 班规的制定应以学生为中心。深入了解学生的需求和期望,以及他们在学习和生活中可能遇…

Docker基础知识的掌握,相关基本命令的用法

安装docker步骤:https://b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBkShcucLZbrn2d 1.docker Docker 是一种容器化平台,用于帮助开发者打包、发布和管理应用程序及其依赖关系。通过 Docker,开发者可以将应用程序及其所有依赖项打包到一个称为…

亿发微商城:从社交流量到生意增量,拓客+变现双收益

亿发微商城提供私域经营必备的系统 、服务和技术支持等全套解决方案。省去开发成本,还原品牌调性,打通社交渠道,经营私域会员,带来传统电商和线下门店之外的生意增量。

43.SO_BACKLOG

属于ServerSocketChannel参数 SO_BACKLOG 设置的过小,高峰期有很多连接来了,就会被拒绝,报拒绝连接错误。 控制全连接队列的大小,可以容下适量连接。所以SO_BACKLOG设置的要大一些。 serverBootstrap.option(ChannelOption.SO_B…

面试-javaIO机制

1.BIO BIO:是传统的javaIO以及部分java.net下部分接口和类。例如,socket,http等,因为网络通信同样是IO行为。传统IO基于字节流和字符流进行操作。提供了我们最熟悉的IO功能,譬如基于字节流的InputStream 和OutputStream.基于字符流…

Vue--》从零开始打造交互体验一流的电商平台(四)完结篇

今天开始使用 vue3 + ts 搭建一个电商项目平台,因为文章会将项目的每处代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的github上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关注本专栏,学习更多…

Webpack: 底层配置逻辑

概述 Webpack 5 提供了非常强大、灵活的模块打包功能,配合其成熟生态下数量庞大的插件、Loader 资源,已经能够满足大多数前端项目的工程化需求,但代价则是日益复杂、晦涩的使用方法,开发者通常需要根据项目环境、资源类型、编译目…

在运行中遇到扫描包问题

问题描述:当我们看到这个上面一行代码时就代表我们有个包没有被当前的Spring容器给扫描到,关于这个问题我们有两个:第一把整个包导进来,第二用哪个导哪个

人脑网络的多层建模与分析

摘要 了解人类大脑的结构及其与功能的关系,对于各种应用至关重要,包括但不限于预防、处理和治疗脑部疾病(如阿尔茨海默病或帕金森病),以及精神疾病(如精神分裂症)的新方法。结构和功能神经影像学方面的最新进展,以及计算机科学等…

Qt开发笔记:Qt3D三维开发笔记(一):Qt3D三维开发基础概念介绍

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/140059315 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、O…