python笔记 字符串查找续

186 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第26天,点击查看活动详情

0 环境

  • 编辑器:idea
  • 系统版本:win10
  • python版本:3.9.6

1 index

index查找,若子串不存在,抛出异常ValueError。而和find查找,若子串不存在时,返回-1。

image.png

查询单字符和子串存在时,和find一样,返回int索引值。

def index_demo():
    s = "a b c d e f 你 我 他 ad"
    print("index ==> ", s.index("ad"))
    print("index ==> ", s.index("a"))
    print("index ==> ", s.index("admin"))

image.png

2 rindex

默认index是从左往右,我们可以想像是我们的左手,从左往右拿东西,但是我想用右手拿东西呢,那么rindex就来了,从右往左,和之前的方式类似。

3 count

字符串.count(子串),计算该count入参在字符串中的个数,当字符串中么有该入参的值时,匹配不到时,返回0。而且还可以有start参数、end参数,和find那种类似。

image.png

定义两个字符串分别是s、s1,统计s字符串中a的个数、的个数,统计s1字符串中,你好呀的个数。

def count_demo():
    s = "a b c d e f a"
    s1 = "你好呀"
    print("count ==> ", s.count("a"))
    print("count ==> ", s.count("我"))
    print("count ==> ", s1.count("你好呀"))

image.png

4 startswith

你会发现查找的格式都很类似,有点和之前学的清空左空格的类似,它这里是判断字符串是不是以某个前缀开始,并且返回值不再是一个int值,而是布尔值,也就说True/False,存在/不存在。而且还支持start参数和end参数,和find这类的方法类似。

image.png

定义了一个字符串名为s,查找在start=1,end=3时,有么有a这个前缀,答案是么有,返回False,若不设置start和end,返回值是True。

def start_demo():
    s = "a-not"
    print("start ==> ", s.startswith("a",1,3))
    print("start ==> ", s.startswith("a"))

if __name__ == '__main__':
    start_demo()

image.png

5 endswith

和startswith类似,一个是管前缀,而endswith管后缀,返回布尔值,入参可带有start参数、end参数和之前的查找方法类似。

6 is*

is*含义呢,isdecimal(),是否是数字,也就说判断它是否是(is)某某某。isMan() --> 是否是男的(只是帮助理解,我英语菜)。

7 总结

查找有左就有右,index、rindex,默认从左到右,首字母是r开头就是从右到左,方式和find类似,不同点在于:值不存在的时候,index为首的会抛异常,而find不会。前后缀查找,startswith、endswith,存在为真,否则为假。它们都具备可选入参,start参数、end参数。count统计子串在字符串中出现的次数,么有就是0。is*判断是否是某某某。