Python中的find()函数:用法和示例
文章标签:
find函数用法
在 Python 中,find() 函数用于在字符串中查找子字符串,并返回子字符串第一次出现的索引。如果未找到子字符串,则返回 -1。find() 函数是字符串对象的方法,因此只能在字符串上调用。
find()函数的语法
str.find(sub, start, end)
- str:要搜索的字符串。
- sub:要查找的子字符串。
- start(可选):搜索的起始位置,默认为 0。
- end(可选):搜索的结束位置,默认为字符串的长度。
示例
让我们通过几个示例来演示 find() 函数的用法。
示例 1:查找子字符串在字符串中的位置
# 定义字符串
my_string = "Hello, world!"
# 查找子字符串 "world" 的位置
index = my_string.find("world")
print("子字符串 'world' 的位置:", index)
运行结果:
子字符串 'world' 的位置: 7
如下图所示,在这个示例中,find() 函数返回了子字符串 "world" 在 "Hello, world!" 中的索引,即 7。使用 find() 函数查找子字符串在字符串中的位置,返回的索引将是从 0 开始的索引位置。
如果字符串中有多个子字符串 "world",find() 函数将返回第一个出现的子字符串的索引。这意味着它将返回最靠前的那个 "world" 的位置。
如果想要找到所有出现的位置,可以使用循环来多次调用 find() 函数,并在每次调用后更新搜索的起始位置。
以下是一个示例代码,演示了如何找到字符串中所有出现 "world" 的位置:
# 定义字符串
my_string = "Hello, world! Hello, world! Hello, world!"
# 初始化搜索起始位置
start_index = 0
# 找到所有出现 "world" 的位置
while True:
# 调用 find() 函数查找子字符串
index = my_string.find("world", start_index)
# 如果找不到子字符串,则退出循环
if index == -1:
break
# 打印找到的位置
print("子字符串 'world' 的位置:", index)
# 更新起始位置,以便下一次搜索从上次找到的位置之后开始
start_index = index + 1
这段代码将输出每个 "world" 的位置。在循环中,我们不断更新起始位置 start_index,以便在下一次调用 find() 函数时,从上一个 "world" 之后开始搜索。如下所示呀,找到了三个位置。
示例 2:查找不存在的子字符串
# 定义字符串
my_string = "Hello, world!"
# 查找子字符串 "Python"
index = my_string.find("Python")
print("子字符串 'Python' 的位置:", index)
运行结果:
子字符串 'Python' 的位置: -1
在这个示例中,由于字符串中不存在子字符串 "Python",因此 find() 函数返回 -1。如下所示。
示例 3:指定搜索范围
# 定义字符串
my_string = "Python is easy to learn. Python is powerful."
# 在指定范围内查找子字符串 "Python"
index = my_string.find("Python", 10, 35)
print("子字符串 'Python' 的位置:", index)
运行结果:
子字符串 'Python' 的位置: 25
在这个示例中,出现了两个‘Python’字符,find() 函数在索引 10 到 35 的范围内搜索子字符串 "Python",并返回第一次出现的索引,即 25。
总结
find() 函数是一个非常有用的字符串方法,用于在字符串中查找子字符串。通过提供起始和结束位置参数,我们可以限制搜索的范围。如果子字符串不存在,则函数将返回 -1。