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。
是否修改原对象:否(返回新对象)
💥 异常
ValueError— 在指定区间内找不到子串 sub 时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
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。