首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库Python

Python index()函数在字符串处理中的使用

减小字体 增大字体 作者:本站  来源:本站整理  发布时间:2020-06-29 12:25:44

Python提供了大量的字符串处理函数,可以帮助我们完成很多有意义的工作。

这里介绍的 index() 函数也是一个Python内建的字符串处理函数,它的作用是返回子字符串在原字符串中首次出现的位置索引。

index()函数的语法格式

str.index( sub [, start [, end ]])

str:是要进行处理的字符串或字符串变量;

各参数的含义如下:

  • sub:要查找的子字符串;
  • start:可选参数,在 str 中开始查找的起始位置索引,默认为0;
  • end:可选参数,在 str 中查找时停止搜索的位置索引,默认为字符串的长度;

index()函数使用示例

1、只给出 sub 参数

>>> str1 = "翔宇亭IT乐园"
>>> print(str1.index('翔宇亭'))
0
>>> print(str1.index('IT'))
3
>>> print(str1.index('乐园'))
5
>>> print(str1.index('it'))
Traceback (most recent call last):
    File "<pyshell#6>", line 1, in <module>
       print(str1.index('it'))
ValueError: substring not found

>>> str1 = "Python is good.Python is easy."
>>> print(str1.index('Python'))
0

从这个例子可以看出,如果原字符串中不包含要产找的子字符串,该函数会抛出一个 ValueError 错误:ValueError:substring not found,即未找到子字符串。

同时,这个例子也说明该函数是大小写敏感的。

如果字符串中含有多个子字符串时,index() 函数仅给出第一次出现子串的索引位置

以上例子在Python IDLE中运行的情况如下图所示:

Python index()函数使用的例子

2、使用 sub 和 start 参数

>>> str1 = "www.biye5u.com"
>>> print(str1.index('biye5u', 3))
4
>>> print(str1.index('.com', -4))
10
>>> str1 = "Python is good.Python is easy."
>>> print(str1.index("Python", 0))
0
>>> print(str1.index("Python", 3))
15

从该例可以看出,start 参数也可以给负数,即从字符串的尾端往前定位,从字符串尾端往前定位时,最后一个字符的索引为-1,则该例给的 -4 的值是字符“.”的位置。

以上例子在Python 3.8.2中的运行情况:

Python index()函数使用举例

3、使用end参数

>>> str1 = "河北泊头:中国鸭梨第一乡"
>>> print(str1.index("泊头", 2, 4))
2
>>> print(str1.index("泊头", 2, 3))
Traceback (most recent call last):
    File "<pyshell#21>", line 1, in <module>
        print(str1.index("泊头", 2, 3))
ValueError: substring not found

>>> print(str1.index("泊头", 1, -3))
2

以上在Python 3.8.2中的运行情况如下图所示:

end 参数是index()函数搜索的停止位置,在匹配子串时不包括 end 位置的字符,上面第2个例子就说明了这个问题。

同时,end 参数也可以使用负数来表示,则是从后往前进行定位。

index()函数异常的处理

由于当字符串中不含子串时,index() 函数会报错,有时使用不够方便。在实际中,我们可以借助Python的异常处理机制来完成工作,见下面的例子。

>>> str1 = "翔宇亭IT乐园"
>>> try:
           print(str1.index('It'))
except ValueError as ve:
           print("没有找到子字符串")

没有找到子字符串

在Python3.8.2中的运行情况如下图所示:

index() vs find()

在Python中 index()函数与 find()函数(find()函数的使用见本站《Python中find()字符串函数的使用方法》)仅有一点不同之处,那就是find()函数在给子字符串定位时,当字符串中不包含子字符串的值时,会返回-1,而不是像index()那样给出一个 ValueError 的错误。见下面的对比例子:

>>> str1 = "I Love you."
>>> print(str1.index('love'))
Traceback (most recent call last):
    File "<pyshell#42>", line 1, in <module>
       print(str1.index('love'))
ValueError: substring not found

>>> print(str1.find('love'))
-1
>>>

本文(完)


如需转载请注明出处和本文链接地址:翔宇亭IT乐园(http://www.biye5u.com)

本文链接地址:http://www.biye5u.com/article/python/2020/6460.html

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.