str.index() 部分文字列の検索(見つからない場合はエラー)
最終更新:2026-09-22
str.index() 部分文字列の検索(見つからない場合はエラー)
str.index(sub) は find() と似ているが、見つからない場合は ValueError を発生させる。
| カテゴリ | 文字列メソッド |
|---|---|
| 種類 | 組み込み型メソッド |
| Python バージョン | all |
📝 構文
str.index(sub[, start[, end]])
⚙️ 引数
| sub 必須 | The substring to search for. |
|---|---|
| start 任意 | Start index of the range (inclusive); None means the beginning.(デフォルト値:None) |
| end 任意 | End index of the range (exclusive); None means the end.(デフォルト値:None) |
戻り値:int. The lowest index where sub is found; raises ValueError if absent.
元のオブジェクトを変更するか:いいえ(新しいオブジェクトを返す)
💥 例外
ValueError— Raised when sub is not found in the range.
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
2
not found: substring not found
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Qindex() と find() の違いは何ですか?
A挙動はほぼ同じですが、1 点だけ異なります:見つからないとき find() は -1 を返すのに対し、index() は ValueError: substring not found を投げます。
Qindex() はいつ使うべきですか?
A部分文字列が「必ず存在すべき」で、見つからないのがロジックエラーである場合に index() を使うと、例外がすぐ問題を露呈します。それ以外は find() の方が安全です。
Qindex() が例外を投げるのを避けるには?
A先に in でチェックします:if 'll' in s: print(s.index('ll'))。または try/except で ValueError を捕捉します。