str.index() 查找子串(找不到报错)

最后更新:2026-09-22

str.index() 查找子串(找不到报错)

str.index(sub) 类似 find(),但找不到时抛 ValueError。

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

📝 语法

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

⚙️ 参数

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

返回值:int。sub 首次出现的索引;找不到时抛出 ValueError。

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

💥 异常

▶ 示例

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

运行结果:

2
not found: substring not found
更多实战案例即将上线,敬请期待。

❓ 常见问题

Qindex() 和 find() 有什么区别?
A行为几乎一样,唯一区别:找不到时 find() 返回 -1,而 index() 抛 ValueError: substring not found。
Q什么时候该用 index()?
A当子串"必须存在"、找不到属于程序逻辑错误时用 index(),让异常立刻暴露问题;否则用 find() 更安全。
Q怎么避免 index() 抛异常?
A先 in 判断:if 'll' in s: print(s.index('ll'));或者用 try/except 捕获 ValueError。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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