Python函数如何查找子字符串并返回下标?
当在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来捕获异常。
