str.find() 部分文字列の位置を検索
最終更新:2026-09-22
str.find() 部分文字列の位置を検索
str.find(sub[, start[, end]]) は sub が最初に出現するインデックスを返す。見つからない場合は -1 を返す(例外は発生しない)。
| カテゴリ | 文字列メソッド |
|---|---|
| 種類 | 組み込み型メソッド |
| Python バージョン | all |
📝 構文
str.find(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, or -1 if not found.
元のオブジェクトを変更するか:いいえ(新しいオブジェクトを返す)
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
2
-1
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Qfind() は部分文字列が見つからないとき例外を投げますか?
Aいいえ。これが index() との最大の違いです。find() は見つからないとき -1 を返します。部分文字列が存在するか確信がない場合は find() を優先しましょう。
Qfind() と index() はどう使い分けますか?
A「存在するかとその位置」だけを知りたいときは find()(エラーなしで -1 を返す)、必ず存在すべきで見つからないのがバグであるときは index()(ValueError を投げる)を使います。
Q2 回目の出現位置を探すには?
Astart パラメータで最初のものをスキップします:'banana'.find('a', 2) はインデックス 2 から検索し 3 を返します。最後の出現を探すには rfind() を使います。
Q空の部分文字列で find('') を呼ぶと何を返しますか?
A0(または start パラメータの値)を返します。空部分文字列はどの位置にもマッチするためです。