📚 Python学習ロードマップ
(初心者→ログ設計まで体系的に学べます)
https://run-ride-code.com/python-selfstudy-roadmap/
はじめに
Pythonで文字列を扱うとき、
- 特定の文字を探す
- 単語の位置を調べる
といった処理が必要になることがあります。
そのときに使われるのが
find()index()
という2つのメソッドです。
どちらも 文字列の位置を検索する機能ですが、
実際に使ってみると 動きに大きな違いがあります。
この記事では
- find() と index() の違い
- 見つからない場合の挙動
- 複数回出現する文字の検索
- 例外処理の使い方
を解説します。
find() の使い方
find() は 文字列の位置を検索するメソッドです。
サンプルコード
text = "abcde"
print(text.find("c"))
実行結果
2
文字 c は 2番目の位置にあるため 2 が返ります。
見つからない場合の動き
find() の特徴は
見つからない場合に -1 を返すことです。
text = "abcde"
print(text.find("x"))
実行結果
-1
そのため、エラーにならず 安全に検索できます。
index() の使い方
index() も文字列の位置を検索するメソッドです。
text = "abcde"
print(text.index("c"))
実行結果
2
ここまでは find() と同じ動きです。
index() の注意点
index() は 見つからない場合にエラーになります。
text = "abcde"
print(text.index("x"))
結果
ValueError
そのため index() を使う場合は
例外処理が必要になることがあります。
2回目以降の検索方法
find() は最初の一致しか返しません。
複数回登場する場合は
検索開始位置を指定します。
text = "あいううえおうあい"first = text.find("う")
second = text.find("う", first + 1)print(second)
実行結果
3
すべての位置を取得する方法
複数回登場する文字をすべて取得する場合はwhile と find() を組み合わせます。
text = "banana"pos = text.find("na")while pos != -1:
print(pos)
pos = text.find("na", pos + 1)
実行結果
1
3
この方法は
- 文章検索
- ログ分析
- テキスト処理
などでよく使われるテクニックです。
index() を安全に使う方法
index() を使う場合は
例外処理を組み合わせます。
text = "abcdefg"try:
pos = text.index("x")
print(pos)
except ValueError:
print("xは見つかりませんでした")
実行結果
xは見つかりませんでした
find() と index() の違い
| メソッド | 見つからない場合 |
|---|---|
| find() | -1 を返す |
| index() | ValueError が発生 |
今日の学習まとめ
今回のポイント
find()は見つからないと-1を返すindex()は見つからないとエラーになる- 2回目以降の検索は 検索開始位置を指定する
- 複数検索には
while find()が便利
文字列検索は Pythonのテキスト処理の基本です。
📚 Python学習ロードマップ
(初心者→ログ設計まで体系的に学べます)
https://run-ride-code.com/python-selfstudy-roadmap/


コメント