龙空技术网

Python 字符串 find()查找

洪较瘦不着调退役it人 73

前言:

当前朋友们对“python查找字符串位置”大体比较关心,各位老铁们都想要剖析一些“python查找字符串位置”的相关资讯。那么小编也在网络上搜集了一些有关“python查找字符串位置””的相关资讯,希望咱们能喜欢,各位老铁们一起来学习一下吧!

Python 字符串 find()

String 的 find() 是一个内置的 Python 函数,可以在包含它的另一个字符串中查找子字符串。如果成功,它将返回第一个匹配项的索引。否则,该函数将返回 (-1) 以标记失败。

字符串find() 语法

使用 Python 字符串 find() 的基本语法如下:

Given_string.find(Sub_string, Begin_index, End_index)
参数

以下是上述函数中参数的说明。

Given_string:它是我们必须遍历的字符串对象。Sub_string:它是我们想要查找的子字符串参数。Begin_index:它是在我们的输入字符串中开始搜索的起始索引。它是一个可选参数。而且,如果我们不指定它,那么 find() 将零作为默认值。End_index:它告诉 find() 函数在哪里结束搜索。这也是一个可选参数。而且,如果我们不指定它,则最高索引号将成为默认值。返回值

find() 函数可能具有以下返回值之一。

如果字符串包含子字符串,则返回值是第一次出现的索引。如果子字符串不匹配,则返回值为 -1。

注意:- 当子字符串在源字符串中出现两次或更多次时,第一次出现是最低索引。

find() 示例

在这里,我们使用字符串 find() 来解决不同的用例。希望这些应该从各个角落帮助您使用此功能。

具有默认值的 find() 函数

在这个例子中,我们没有在 find() 调用中传递任何值。因此,它将采用开始和结束索引的默认值。

如最初所述,begin_index的默认值为 0,end_index 的默认值为字符串的长度。

in_str = 'Does Python supports Lambda function?'find_str = 'supports'ret_index = in_str.find(find_str)print(f"The input string: {in_str}")print(f"The position of '{find_str}' substring is: ", ret_index)

执行上述代码片段后,您将看到以下结果:

The input string: Does Python supports Lambda function?The position of 'supports' substring is: 12

我们在这里给出的所有示例中都使用了Python f-string。因此,请确保使用 Python 3.6 运行这些。

字符串包含两个或多个子字符串

如前所述,字符串 find() 在子字符串多次出现的情况下返回第一个索引。下面是查看此行为的示例:

in_str = 'The most popular Python versions are Python 2.6, and Python 3.6.'find_str = 'Python'ret_index = in_str.find(find_str)print(f"The input string is: {in_str}")print(f"The position of '{find_str}' substring is: {ret_index}")

此代码将为您提供以下结果:

The input string is: The most popular Python versions are Python 2.6, and Python 3.6.The position of 'Python' substring is: 17
当 find() 找不到子字符串时

让我们检查一下当给定字符串不包含所需的子字符串时的 find() 返回值。在这种情况下,函数应失败并返回 -1。下面是观察此行为的示例:

in_str = 'The most popular Python versions are Python 2.6, and Python 3.6.'find_str = 'CSharp'ret_index = in_str.find(find_str)print(f"The input string is: {in_str}")print(f"The position of '{find_str}' substring is: {ret_index}")

运行此代码后,您将获得以下输出:

The input string is: The most popular Python versions are Python 2.6, and Python 3.6.The position of 'CSharp' substring is: -1
带有开始和结束索引的 find() 字符串

当您提供 find() 方法的两个可选参数时。然后,它搜索特定范围内的子字符串,即在(开始,结束)之间。

让我们看看 find() 如何与开始和结束索引一起操作。

in_str = 'The most popular Python versions are Python 2.6, and Python 3.6.'find_str = 'Python'start = in_str.find(find_str) + len(find_str)end = len(in_str)ret_index = in_str.find(find_str, start, end)print(f"The input string is: {in_str}")print(f"The position of '{find_str}' in sliced string '{in_str[start:end]}' is: {ret_index}")

在这个 Python 示例中,我们尝试获取子字符串第二次出现的索引。这就是为什么我们找到了第一个索引,并按子字符串的长度递增它。运行给定的代码段后,您应该看到以下结果:

The input string is: The most popular Python versions are Python 2.6, and Python 3.6.The position of 'Python' in sliced string ' versions are Python 2.6, and Python 3.6.' is: 37

标签: #python查找字符串位置 #python查找字符串位置返回当前行号 #python查找字符串出现的位置 #python读取字符串 #python文件查找字符串