Python API快餐教程(1) - 字符串查找API
字符串处理相关API
字符串是7种序列类型中的一种。
除了序列的操作函数,比如len()来求字符串长度之外,Python还为字符串提供丰富到可以写个编辑器的API.
查找类API
首先,下面的查找API都是为了查找位置,或者查一共有几次这样的操作。
如果只是想判断一个字符串是不是另一个字符串的子串的话,使用序列的in运算符就可以了。
例:
str1 = "hahahahaha,heiheihei"
if 'haha' in str1:
print('haha is a substring of '+str1)
else:
print('haha is NOT a substring of '+str1)
数数有多少个匹配的字符串 - count函数
原型:str.count(sub[, start[, end]])
* sub:要查找的子字符串
* start:起始位置
* end:结束位置
字符串的count函数可以数出来有多少次匹配,我们看个例子,有5个ha和3个hei
str1 = "hahahahaha,heiheihei"
print(str1.count('ha'))
print(str1.count('haha'))
输出为5和2.
haha只能匹配两次。
再加上扩展参数:
print(str1.count('ha',1))
print(str1.count('ha',0,5))
不抛异常的查找 find和rfind
find函数的行为是,如果能找到,则返回在序列中的坐标,如果找不到,则返回-1. rfind是从右向左查找。我们来看例子:
print(str1.find('haha'))
print(str1.rfind('haha'))
输出值为0和6.
找不到的例子:
print(str1.find('hoho'))
print(str1.rfind('hi'))
输出值都是-1.
完整形式:
* str.find(sub[, start[, end]])
* str.rfind(sub[, start[, end]])
会抛异常的查找:index和rindex
index和rindex的功能与find和rfind基本上一致,除了在找不到时会抛出ValueError异常而不是返回-1.
例:
>>> str1 = "hehe"
>>> str1.index('ha')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
所以我们需要加try…except语句来处理之:
try:
str1.index('hoho')
except ValueError:
print('hoho cannot be found in '+str1)
从头查找和从尾查找 startswith, endswith
有时候,我们希望做从头匹配或者匹配尾部。这时候就要用到startswith函数和endswith函数。例:
print(str1.startswith('ha'))
print(str1.endswith('hei'))
这两个返回值均为True.
如果需要更复杂的匹配,还是需要正则表达式。与Java等语言不同,Python中的正则表达式有专门的模块,字符串的API不负责这个事情。
小结
- 判断字符串是不是在别一个串中能找到:in
- 判断是否左匹配:startswith
- 判断是否右匹配:endswith
- 数数能匹配多少次:count
- 不抛异常的求匹配位置:find,rfind
- 会抛异常的求匹配位置:index,rindex
Python API快餐教程(1) - 字符串查找API的更多相关文章
- Python学习入门教程,字符串函数扩充详解
因有用户反映,在基础文章对字符串函数的讲解太过少,故写一篇文章详细讲解一下常用字符串函数.本文章是对:程序员带你十天快速入门Python,玩转电脑软件开发(三)中字符串函数的详解与扩充. 如果您想学习 ...
- 【实测】Python 和 C++ 下字符串查找的速度对比
完整格式链接:https://blog.imakiseki.cf/2022/03/07/techdev/python-cpp-string-find-perf-test/ 背景 最近在备战一场算法竞赛 ...
- JAVASE02-Unit01: API文档 、 字符串基本操作
API文档 . 字符串基本操作 文档注释 package day01; /** * 文档注释只能定义在三个地方: * 类,方法,常量 * * 文档注释是功能注释,用来说明功能作用 * 在类上使用的目的 ...
- [Python][flask][flask-login]关于flask-login中各种API使用实例
本篇博文跟上一篇[Python][flask][flask-wtf]关于flask-wtf中API使用实例教程有莫大的关系. 简介:Flask-Login 为 Flask 提供了用户会话管理.它处理了 ...
- python 全栈开发,Day95(RESTful API介绍,基于Django实现RESTful API,DRF 序列化)
昨日内容回顾 1. rest framework serializer(序列化)的简单使用 QuerySet([ obj, obj, obj]) --> JSON格式数据 0. 安装和导入: p ...
- C# 窗体常用API函数 应用程序窗体查找
常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名 ...
- C中级 MariaDB Connector/C API 编程教程
引言 - 环境搭建 首先开始环境搭建. 主要在Window 10 + Visual Studio 2015 上构建使用 mariadb connector/c api 进行数据操作开发. 为什么选择在 ...
- Python 极简教程(八)字符串 str
由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...
- Azure Application Insights REST API使用教程
本文是Azure Application Insights REST API的简单介绍,并会包含一个通过Python消费API的示例/小工具. 新加入的team中的一项工作是制作日常的运维报表,制作方 ...
随机推荐
- 模拟C#的事件添加和删除
从<C# Via CLR>中的演化的一个小demo,探索事件的添加和删除原理,简单明了: using System; using System.Collections.Generic; u ...
- python网络编程之TCP通信实例
一. server.py import socket host="localhost" port= s=socket.socket(socket.AF_INET,socket.SO ...
- Ubuntu 添加,删除ppa
PPA,英文全称为 Personal Package Archives,即个人软件包档案.是 Ubuntu Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launchpa ...
- [ios]关于gps以及坐标系
参考:http://mobile.51cto.com/iphone-387413.htm 美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置,这应该是国际共识.但在我国 ...
- android 管理fragment
要管理fragment们,需使用FragmentManager,要获取它,需在activity中调用方法getFragmentManager(). 你可以用FragmentManager来做以上事情: ...
- Codeforces 534B - Covered Path
534B - Covered Path 思路:贪心,每一秒取尽可能大并且可以达到的速度. 画张图吧,不解释了: 代码: #include<bits/stdc++.h> using name ...
- 流氓 2345.com的新动态及解决方法
安装了[电脑公司]的Win7_SP1之后, IE的主页被绑架. 症状是先转到 IE959.com,然后自动跳转到 www.2345.com 网上当然有很多例子了,可是都没有效果. 1. 更改IE设置没 ...
- [Java学习] Java异常处理基础
Java异常是一个描述在代码段中发生的异常(也就是出错)情况的对象.当异常情况发生,一个代表该异常的对象被创建并且在导致该错误的方法中被抛出(throw).该方法可以选择自己处理异常或传递该异常.两种 ...
- [Java学习] Java继承的概念与实现
继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似. 继承可以理解为一个类从另一个类获取方法和属性的过程.如果类B继承于类A,那么B就拥有A的方法和属性. ...
- windows下python检查文件是否被其它文件打开
windows下python检查文件是否被其它文件打开.md 有时候我们需要能够判断一个文件是否正在被其它文件访问,几乎不可避免的要调用操作系统接口 from ctypes import cdll i ...