Python 字符串 find() 方法及示例

什么是 Python 字符串查找()?

Python 字符串查找() 是可用的功能 Python 库从给定的字符串中查找子字符串首次出现的索引。如果指定的子字符串不存在于给定的字符串中,则字符串 find() 函数将返回 -1 而不是抛出异常。

的语法 Python 字符串查找()

基本语法 Python find()函数如下:

string.find(substring,start,end)

find() 方法的参数

这里是 String find() 函数的三个参数 Python:

  • 子串:要在给定字符串中搜索的子字符串。
  • 开始:(可选)开始搜索子字符串的起始值。默认情况下为 0。
  • end:(可选)子字符串搜索的结束值。默认情况下,该值为字符串的长度。

具有默认值的 find() 方法示例

传递给的参数 Python find() 方法是子字符串,即要搜索的字符串、开始和结束。起始值默认为 0,结束值是字符串的长度。

在此示例中,我们将使用 find() 方法 Python 带有默认值。

find() 方法将搜索子字符串并给出子字符串第一次出现的位置。现在,如果子字符串在给定字符串中出现多次,它仍将返回第一个子字符串的索引或位置。

计费示例:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

输出:

The position of Tutorials is at: 12

使用起始参数的 find() 示例

您可以在给定的字符串中搜索子字符串,并指定搜索的起始位置。start 参数可用于此目的。

该示例将起始位置指定为 15,并且 find() Python 方法将从位置 15 开始搜索。这里,结束位置将是字符串的长度,并将从 15 个位置开始搜索直到字符串末尾。

计费示例:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

输出:

The position of Tutorials is at 48

使用开始和结束参数的 find() 示例

使用开始和结束参数,我们将尝试限制搜索,而不是搜索整个字符串。

计费示例:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

输出:

The position of Tutorials is at 12

find() 方法示例查找字符串中给定子字符串的位置

我们知道 find() 可以帮助我们找到子字符串第一次出现的索引。如果子字符串不存在于给定的字符串中,则返回 -1。下面的示例显示了当字符串存在时的索引,以及当我们找不到要搜索的子字符串时返回 -1。

计费示例:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Best site is at:", mystring.find("Best site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

输出:

The position of Best site is at: 27
The position of Guru99 is at: -1

Python 字符串 rfind()

这个 Python 函数 rfind() 与 find() 函数类似,唯一的区别是 rfind() 给出给定子字符串的最高索引,而 find() 给出最低索引,即第一个索引。如果子字符串不存在,rfind() 和 find() 都将返回 -1。

在下面的例子中,我们有一个字符串“Meet Guru99 Tutorials Site。 Python 教程!”并将尝试使用 find() 和 rfind() 找到子字符串 Tutorials 的位置。Tutorials 在字符串中出现了两次。

这是一个同时使用 find() 和 rfind() 的示例。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))

输出:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

输出显示 find() 给出了它获取的第一个 Tutorials 子字符串的索引,而 rfind() 给出了子字符串 Tutorials 的最后一个索引。

Python 字符串索引()

这个 Python string index() 是一个函数,它像 find() 一样返回给定子字符串的位置。两者之间的唯一区别是,如果字符串中不存在子字符串,index() 将抛出异常,而 find() 将返回 -1。

这是一个工作示例,展示了 index() 和 find() 的行为。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))

输出:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

我们对 find() 和 index() 都得到了相同的位置。让我们看一个给定子字符串不存在于字符串中的例子。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))

输出:

The position of Tutorials using find() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

在上面的例子中,我们尝试查找子字符串“test”的位置。子字符串不存在于给定的字符串中,因此使用 find(),我们得到的位置为 -1,但对于 index(),它会引发错误,如上所示。

查找子字符串的总出现次数

要查找子字符串在给定字符串中出现的总次数,我们将使用 find() 函数 Python。将使用 for 循环从 0 开始循环遍历字符串直到字符串末尾。将使用 find() 的 startIndex 参数。

变量 startIndex 和 count 将被初始化为 0。for 循环内部将检查子字符串是否存在于使用 find() 和 startIndex 为 0 给出的字符串中。

如果 find() 返回的值不是 -1,则将更新 startIndex 为找到字符串的索引,并增加 count 值。

以下是实际示例:

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

输出:

The total count of substring test is:  6

结语

  • 这个 Python string find() 方法有助于查找给定字符串中子字符串第一次出现的索引。如果子字符串不存在,它将返回 -1。
  • 传递给的参数 Python find substring 方法包括 substring 即要搜索的字符串、起始和结束。起始值默认为 0,结束值为字符串的长度。
  • 您可以在给定的字符串中搜索子字符串,并指定搜索的起始位置。start 参数可用于此目的。
  • 使用开始和结束参数,我们将尝试限制搜索,而不是搜索整个字符串。
  • 这个 Python function rfind() 与 find() 函数类似,唯一的区别是 rfind() 给出给定子字符串的最高索引,而 find() 给出最低索引,即第一个索引。如果子字符串不存在,rfind() 和 find() 都将返回 -1。
  • 这个 Python string index() 是另一个函数,它像 find() 一样返回给定子字符串的位置。两者之间的唯一区别是,如果字符串中不存在子字符串,index() 将抛出异常,而 find() 将返回 -1。
  • 我们可以利用 find() 来查找给定字符串中子字符串出现的总次数。

“ 学习更多关于 Python 字符串拆分()