欢迎访问宙启技术站
智能推送

Python函数如何查找子字符串并返回下标?

发布时间:2023-06-21 05:48:37

当在Python中需要查找一个字符串中的某个子字符串时,可以使用字符串函数find()或index()。这两种函数都可以返回子字符串在原始字符串中的下标,但在使用时需要注意一些细节。

find()函数

find()函数是Python内置的字符串函数,用于在一个字符串中查找指定子字符串的 次出现,并返回子字符串在原始字符串中的下标。如果子字符串不存在,则返回-1。

find()函数的语法如下:

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

其中,sub是要查找的子字符串;start和end表示要查找的起始位置和结束位置(可选)。

示例代码如下:

str = "Hello, Python!"

char = "P"

# 查找字符 'P'

index = str.find(char)

if index != -1:

    print("子字符串 '%s' 在原字符串 '%s' 中的下标为 %d" % (char, str, index))

else:

    print("没有找到子字符串 '%s' " % char)

输出结果为:

子字符串 'P' 在原字符串 'Hello, Python!' 中的下标为 7

index()函数

与find()函数类似,index()函数也用于在一个字符串中查找指定子字符串的 次出现,并返回子字符串在原始字符串中的下标。但是如果子字符串不存在,则会抛出异常。

index()函数的语法如下:

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

其中,sub是要查找的子字符串;start和end表示要查找的起始位置和结束位置(可选)。

示例代码如下:

str = "Hello, Python!"

char = "P"

# 查找字符 'P'

try:

    index = str.index(char)

    print("子字符串 '%s' 在原字符串 '%s' 中的下标为 %d" % (char, str, index))

except ValueError:

    print("没有找到子字符串 '%s' " % char)

输出结果为:

子字符串 'P' 在原字符串 'Hello, Python!' 中的下标为 7

注意事项:

1. find()和index()函数的返回值都是子字符串在原始字符串中的下标,从0开始计数。

2. 如果需要查找多个子字符串,可以使用正则表达式或字符串的split()函数拆分为多个字符串进行查找。

3. find()函数与index()函数返回的都是 次出现的下标,如果要查找所有出现的位置,则需要循环查找,或者使用字符串的replace()函数对子字符串进行替换,然后在替换后的字符串中查找子字符串。

4. 在使用index()函数时,如果查找的子字符串在原始字符串中不存在,则会抛出异常,这时需要使用try...except来捕获异常。