Python find()函数使用详解

news2024/9/22 11:32:13

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》

find

  • 1、指定检索位置
  • 2、参数为负数
  • 3、超出范围
  • 3、find()和index()的区别?
  • 4、find()和rfind()的区别?

find() 可以「检测」字符串中是否「包含指定字符串」

语法

string.find( str, start, end)

参数

  • str :(必选)指定需要检测的字符串
  • start :(可选)开始索引,默认为0 start = 0
  • end :(可选)结束索引,默认为字符串的长度 end = len(string)

返回值

  • 如果「包含」字符串,就返回字符串的索引
  • 如果「不包含」字符串,就返回 -1

实例:检测字符串 ‘hello world’ 中是否包含字符串 ‘e’

str1 = 'hello world'
print(str1.find('e'))

输出:

1

1、指定检索位置

只给 start ,不给 end ,默认搜索到字符串的「末尾」,搜索范围是 [start, 末尾]

比如从索引3开始,到末尾结束,检测字符串 ‘e’ 是否存在

str1 = 'hello hello'
print(str1.find('e', 3))

输出:

7

从结果可以看出,‘e’ 存在,并返回了 ‘e’ 的索引位置。

同时给 start end ,搜索范围含头不含尾 [start, end)

比如从索引3开始,到索引7结束,检测字符串 ‘e’ 是否存在

str1 = 'hello hello'
print(str1.find('e', 3, 7))
print(str1.find('e', 3, 8))

输出:

-1
7

从结果可以看出,‘e’ 的索引是7,当end为7时,因为搜索「含头不含尾」,所以没找到,就返回了 -1。


2、参数为负数

start end 可以为「负数」

从右边数第4个开始,到末尾结束,检测 ‘e’ 是否存在

str1 = 'hello hello'
print(str1.find('e', -4))

输出:

7

从右边数第4个开始,到从右边数第3个结束,检测 ‘e’ 是否存在

str1 = 'hello hello'
print(str1.find('e', -4, -3))
print(str1.find('e', -4, -4))

输出:

7
-1

3、超出范围

如果搜索的索引「超过」了字符串的「长度」,就会返回 -1,而不是报错。

即使搜索的子字符串长度超过了字符串的长度也不会报错。

str1 = 'hello'
print(str1.find('e', 11))
print(str1.find('hello world'))

输出:

-1
-1

3、find()和index()的区别?

find() index() 都能检测字符串是否存在,但如果找不到值, find() 会返回-1,而 index() 会报错 ValueError: substring not found

str1 = 'hello hello'
print(str1.find('a'))
print(str1.index('a'))

输出:

在这里插入图片描述

4、find()和rfind()的区别?

find() rfind() 都可以检测字符串是否存在,不同的是, find() 「左侧」开始查找,而 rfind() 「右侧」开始查找。

str1 = 'hello hello'
print(str1.find('e'))
print(str1.rfind('e'))

输出:

1
7

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

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

相关文章

【Docker】Docker安装MySQL

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前专攻C/C、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL、蓝桥杯&am…

Win11系统如何安装Oracle数据库(超级详细)

前言:在我们安装Oracle之前我们得理解Oracle数据库的优点是什么: Oracle是一个功能强大、可扩展和全面的数据库平台,具有广泛的功能和企业级能力,适用于处理复杂的企业级应用和大型数据集。 目录 一.下载Oracle数据库软件&…

解决idea只能通过 idea.bat打开的问题

解决:C盘用户下面 有idea的配置文件 ,找到idea64.exe.vmoptions 把 -jetbrain : 配置的 jar路径删除

Tablet vs. eReader: Which Is Better for Ebooks? 平板电脑与电子阅读器:哪个更适合电子书?

eReaders are best if all you want to do is have something as close to a paper book as possible. However, if you need anything more than that, a tablet makes more sense as a general-purpose device that can also read ebooks. 如果您只想拥有尽可能接近纸质书的东…

认识文件操作与IO

文章目录 认识文件文件夹文件路径文件分类 文件操作File类构造方法常用方法 字节流IOInputStream常用方法 FileInputStream构造方法FileInputStream实例 OutputStream方法 FileOutputStream 字符流IO 认识文件 我们平时所说的文件指的是存在硬盘上的文件,我们平时的…

Openlayers实战:回显多点、多线段、多多边形

Openlayers地图中,回显数据是非常重要的。 继上一示例回显点、线、圆形、多边形后。本示例回显多线,多点,多个多边形。用到了MultiPoint,MultiLineString,MultiPolygon。 多个信息的显示可以采用循环的方式,单个显示点、线、面。 但是循环方式是要多次计算的,而MultiPoint…

GUI (java)

GUI 一.GUI概念二.Swing概述三.容器组件四.常用容器1.窗体(1) JFrame类的构造方法(2) JFrame类的常用方法 2.面板(1)JPanel类的构造方法(2)JPanel类的常用方法 五.布局管理器1. FlowLayout 流式布局(1)FlowLayout构造方法 2.BorderLayout 边界布局3.GridLayout 网格布局 六.常用…

LangChain: 大语言模型的新篇章

本文介绍了LangChain框架,它能够将大型语言模型与其他计算或知识来源相结合,从而实现功能更加强大的应用。接着,对LangChain的关键概念进行了详细说明,并基于该框架进行了一些案例尝试,旨在帮助读者更轻松地理解LangCh…

Mycat【Mycat高级特性_搭建双主双从、Mycat分片技术_垂直拆分-分库 】(四)-全面详解(学习总结---从入门到深化)

目录 Mycat高级特性_搭建双主双从 Mycat分片技术_垂直拆分-分库 Mycat高级特性_搭建双主双从 环境准备 创建docker容器 #启动第一台 docker run -d -p 3350:3306 -e MYSQL_ROOT_PASSWORD123456 --namemaster1 mysql:5.7#启动第二台 docker run -d -p 3360:3306 -e MYSQL_R…

Qt自定义控件之动画文本

文章目录 前言一、动画文本的效果二、具体实现定义动画对象设置动画时长的实现设置text函数实现绘制代码设置字体函数 三、高级部分操作代码总结 前言 在 Qt 中,自定义控件可以让我们实现丰富的用户界面效果和交互体验。其中,动画文本是一种常见的效果&…

电路分析基础学习(上)第4章

李瀚荪版电分第二版 ----------------------------------------------------------------------------------------------------------------------------- 求单口网络的VCR 两大基本方法: 1.外接电流源求电压; 2.外接电压源求电流; ---…

Netty序列化算法参数调优

目录 一、扩展序列化算法 1、Java 2、Json 二、参数调优 1、CONNECT_TIMEOUT_MILLIS 2、SO_BACKLOG 3、ulimit-n 4、TCP_NODELAY 5、SO_SNDBUF & SO_RCVBUF 6、ALLOCATOR 7、RCVBUF_ALLOCATOR 一、扩展序列化算法 1、Java 我们先写Java中jdk的序列方式&#x…

RabbitMQ系列(28)--RabbitMQ使用Federation Queue(联邦队列)解决异地访问延迟问题

前言: 联邦队列可以在多个Broker节点(或者集群)之间为单个队列提供均衡负载的功能。一个联邦队列可以连接一个或者多个上游队列(upstream queue),并从这些上游队列中获取消息以满足本地消费者消费消息的需求。 1、Federation Queue工作原理图 2、添加策…

Oracle19c默认用户名system密码不正确不能登录问题解决

Oracle19c默认用户名system密码不正确不能登录问题解决 1、oracle 命令乱码问题 oracle乱码问题一般是由于oracle字符集设置和操作系统字符集设置不一致造成的。 查看oracle字符集方式如下: 1.进入sqlplus 命令: sqlplus /nolog2.以系统管理员身份连…

【Git原理与使用】-- 企业级开发模型

目录 引入 系统开发环境 Git 分支设计规范 master 分支 release 分支 develop 分支 feature 分支 hotfix 分支 开发场景 - 基于git flow模型的实践 DevOps研发平台 修复测试环境 Bug 修改预发布环境 Bug 修改正式环境 Bug 紧急修复正式环境 Bug 拓展实践 都说&a…

java的RSA加密解密示例

RSA算法是一种非对称加密算法,公钥和私钥都可以用于加密和解密操作。在RSA算法中,公钥用于加密数据,私钥用于解密数据。 具体来说,使用公钥加密的数据只能使用相应的私钥进行解密。而使用私钥加密的数据则可以使用相应的公钥进行…

【云原生|云计算系列】云计算基础概念

欢迎来到云原生专题的云计算系列第一篇博客,我们将探索云计算的基础知识,以帮助您深入了解这个迅速发展的领域。在前一篇博客中,我们介绍了云原生的概念和重要性,强调了它作为云计算的核心理念和实践的关键角色。本篇博客将进一步…

基于单片机智能水杯 保温杯 定时提醒喝水 温度控制的设计与实现

功能介绍 以51单片机作为主控系统;LCD1602液晶显示当前水温,定时提醒,水量变化DS18B20检测当前水体温度;水位传感器检测当前水位;继电器驱动加热片进行水温加热;定时提醒喝水,蜂鸣器报警&#x…

Vue + Volo.Abp 实现OAuth2.0客户端授权模式认证

文章目录 注册ClientOAuth2.0授权创建vue-oidc-client创建OAuth2.0认证跳转获取令牌创建回调页面创建退出登录 最终效果 Volo.Abp的 身份服务器模块默认使用 IdentityServer4实现身份认证。 IdentityServer4是一个开源的OpenID Connect和OAuth 2.0框架,它实现了这…

第41节:cesium 闪烁效果-熊出没(含源码+视频)

结果示例: 点的闪烁:1.逐渐放大后消失;2.点闪烁。 图的闪烁:熊出没,含自定义显示文字效果。 完整源码: <template><div class="viewer"><vc-viewer @ready="ready" :logo="false">