Python中的字符串查找函数find()和index()有什么区别?

2023-03-17 00:00:00 函数 字符串 有什么区别

find() 和 index() 方法都用于在 Python 中查找一个子字符串在一个字符串中第一次出现的位置。两个方法的区别在于当要查找的子字符串不在原始字符串中时的返回值不同。

find() 方法返回子字符串第一次出现的索引位置,如果子字符串不在字符串中,则返回 -1。而 index() 方法也返回子字符串第一次出现的索引位置,但如果子字符串不在字符串中,则会抛出 ValueError 异常。

下面是一个例子,可以更好地说明两种方法的区别:

s = "Hello, world!"

# 使用 find() 方法查找子字符串
index1 = s.find("world")
index2 = s.find("Python")

# 使用 index() 方法查找子字符串
try:
    index3 = s.index("world")
    index4 = s.index("Python")
except ValueError as e:
    print(e)

# 输出结果
print(index1) # 输出 7
print(index2) # 输出 -1
print(index3) # 输出 7

在上面的例子中,我们定义了一个字符串 s,并使用 find() 和 index() 方法分别查找子字符串 "world" 和 "Python" 在字符串 s 中第一次出现的位置。由于 "world" 存在于字符串 s 中,所以两个方法都能找到其索引位置。而 "Python" 不在字符串 s 中,因此 find() 方法返回 -1,而 index() 方法抛出 ValueError 异常。

因此,在使用这两个方法时,需要根据具体的场景和需求来选择使用哪个方法。如果希望在子字符串不在原始字符串中时返回 -1,则应该使用 find() 方法;如果希望在子字符串不在原始字符串中时抛出异常,可以使用 index() 方法。

相关文章