Python中的字符串类型str提供了多种方便快捷的操作函数,str.find()函数就是其中一种。str.find()函数可以用来查找一个字符串在另一个字符串中出现的位置,下面是关于str.find()函数的详细使用教程:
语法
str.find(sub[, start[, end]])
其中,str为被查找的字符串,sub为要查找的子字符串,start和end可选,表示在被查找的字符串中查找子字符串的起始和终止位置,若不指定,则默认在整个被查找的字符串中查找。
返回值
如果找到,则返回子字符串在被查找字符串中的第一个字符位置(索引从0开始),如果没有找到,则返回-1。
功能说明
str.find()函数会从左向右在被查找的字符串中查找子字符串,找到第一个匹配的子字符串后就停止查找。
示例1
下面是一个简单的示例,演示如何使用str.find()函数查找字符串中是否包含指定子字符串,并获取其位置:
# 演示str.find()函数的基本使用
str = "Hello World!"
sub_str = "World"
position = str.find(sub_str)
if position != -1:
print(f"找到子字符串{sub_str}在被查找字符串中出现的位置是{position}")
else:
print(f"没有找到子字符串{sub_str}")
上述代码中,我们首先定义了一个字符串str,接着定义子字符串sub_str,然后使用str.find()函数查找sub_str在str中出现的位置,如果找到了,则打印出其在str中第一次出现的位置(索引从0开始),如果没找到,则打印出“没有找到子字符串{sub_str}”,程序的输出结果是:
找到子字符串World在被查找字符串中出现的位置是6
示例2
下面是另一个示例,演示如何使用str.find()函数在一段文本中查找所有指定的子字符串,并输出其位置:
# 演示如何使用str.find()函数查找所有的指定子字符串
text = "In Python, the sky is blue and the grass is green."
sub_str = "is"
start = 0
positions = []
while True:
position = text.find(sub_str, start)
if position == -1:
break # 如果没有找到指定的子字符串,则退出循环
positions.append(position)
start = position + 1
print(f"查找到子字符串{sub_str}在以下位置:{positions}")
上述代码中,我们首先定义了一个文本字符串text和一个子字符串sub_str,然后使用str.find()函数和while循环来查找text中出现的所有sub_str,并将其位置逐个添加到列表中。程序的输出结果是:
查找到子字符串is在以下位置:[3, 16, 23, 38]
如果不使用循环来查找text中出现的所有sub_str,则str.find()函数只能找到第一个匹配的sub_str,而忽略其它出现的sub_str。