str.find() 查找子串位置

最后更新:2026-09-22

str.find() 查找子串位置

str.find(sub[, start[, end]]) 返回 sub 首次出现的索引;找不到返回 -1(不抛异常)。

分类字符串方法
类型内建类型方法
Python 版本all

📝 语法

str.find(sub[, start[, end]])

⚙️ 参数

sub 必选要查找的子串。
start 可选搜索区间的起始位置(含),None 表示从开头。(默认值:None)
end 可选搜索区间的结束位置(不含),None 表示到末尾。(默认值:None)

返回值:int。sub 首次出现的索引;找不到时返回 -1,不抛异常。

是否修改原对象:否(返回新对象)

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

2
-1
更多实战案例即将上线,敬请期待。

❓ 常见问题

Qfind() 找不到子串会抛异常吗?
A不会,这是它与 index() 最大的区别:find() 找不到返回 -1。不确定子串是否存在时优先用 find()。
Qfind() 和 index() 该怎么选?
A只想判断"有没有、在哪个位置"时用 find()(返回 -1 不报错);确定一定存在、找不到就是 bug 时用 index()(抛 ValueError)。
Q怎么找第二次出现的位置?
A用 start 参数跳过第一次:'banana'.find('a', 2) 从索引 2 开始找,返回 3。要找最后一次出现用 rfind()。
Q空子串 find('') 返回什么?
A返回 0(或 start 参数的值),空子串在任意位置都能匹配。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏