Python API快餐教程(1) - 字符串查找API

简介: 字符串查找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
目录
相关文章
|
1天前
|
C语言 Python
专为编程小白设计的Python零基础入门教程,GitHub星标破W
市面上大多数技术类的书籍都着重于一步步的构建系统的知识体系,并不是说这样就是不对的,但这样按部就班的学习注定了需要花费大量的时间用来掌握“基础知识”,或死记硬背,或慢慢理解。 然而世界不会迁就你,而是在步步紧逼的告诉你要赶紧学完,赶紧找工作,赶紧挣钱,这才是你生活的基础。 今天给小伙伴们带来了一份《编程小白的第一步Python书》,这本书是专为零基础小白设计的,不会告诉“先学C语言,会更好理解Python”这种狗屁道理。而是先带你掌握搭建项目所用到的最少得知识,再真实的项目搭建中实践自己的所学,逐渐的完善知识体系
|
1天前
|
机器学习/深度学习 算法 数据挖掘
4小时学完!15年技术大牛用247个实战案例剖析的Python教程
今天给小伙伴们分享一份15年技术大牛用247个实战案例剖析的Python教程,这份教程全程彩图讲解,告别枯燥!60秒学会⼀个⼩例⼦,带你系统学习Python,从⼊门到⼤师。 涵盖了Python基础、Python字符串和正则、Python⽂件和⽇期、Python三⼤利器、Python绘图、Python之坑、Python第三⽅包、机器学习和深度学必知算法、Python实战、Pandas数据分析案例实战十大篇幅的精品案例教程
封神!霸榜GitHub的零基础Python教程居然是本早教书
网络资料千千万,下载收藏占一半!你想想看,本来就是给孩子看的东西,能难到哪里去,孩子都能上手的东西,到咱手里那还不得上天啊!
|
1天前
|
JSON API 数据格式
详细介绍下PYTHON API的用法
详细介绍下PYTHON API的用法
|
2天前
|
存储 缓存 数据库连接
Python基础教程——字典(Dictionary)
Python基础教程——字典(Dictionary)
|
2天前
|
Python
Python基础教程——运算符
Python基础教程——运算符
|
2天前
|
存储 数据处理 索引
Python基础教程——元组
Python基础教程——元组
|
2天前
|
安全 数据库 UED
Python基础教程——异常处理
Python基础教程——异常处理
|
2天前
|
Python
Python基础教程——循环语句
Python基础教程——循环语句
|
2天前
|
算法 索引 Python
Python基础教程——循环嵌套
Python基础教程——循环嵌套