【Python】find()、in演算子による文字列の検索方法を紹介!

こんにちは!

皆さんは、文字列の検索方法を知っていますか?

Python初心者
文字列の中にどの文字が含まれているのか調べたくなることがあるよね!

find()in演算子を使えば簡単に文字列を検索することができます。

今回の記事では、文字列の検索方法として以下の内容について紹介します。

  • find()
  • rfind()
  • in演算子

文字列の検索方法

find()を使用した文字列の検索

「find()」を使用すると、検索したい文字が文字列の中のどこに含まれているかを調べることができます。

文字列.find(検索したい文字)

文字が見つかった場合には、最初に文字が見つかったところのインデックス番号を返します。

見つからなかった場合には、「-1」を返します。

以下のプログラムは、find()を用いた文字列を検索するプログラムです。

str = "Python初心者の備忘録"

print(str.find("初心者"))
print(str.find("ビギナー"))

実行結果

6
-1
find()では、検索したい文字が複数ある場合では、先頭の文字のインデックスしかわかりません。

例)

str = "PythonPythonPython"

print(str.find("Python"))

実行結果

0

そのため、検索したい範囲を指定して検索することができます。

範囲を指定して検索

find()では、文字列の範囲を指定して検索することができます。

文字列.find(検索したい文字, 開始位置, 終了位置)

スライスなどと同様に、終了位置は範囲に含まれないので注意しましょう。

以下のプログラムは、find()で範囲を指定して文字列を検索するプログラムです。

str = "PythonPythonPython"

print(str.find("Python", 2, 12))
print(str.find("Python", 2, 11))

実行結果

6
-1

rfind()を使用した文字列の検索

find()では、検索したい文字を先頭から探していました。

「rfind()」では、検索したい文字を末尾から探します。

以下のプログラムは、rfind()を用いた文字列を検索するプログラムです。

str = "PythonPythonPython"

print(str.find("Python"))
print(str.rfind("Python"))

実行結果

0
12

rfind()でも、find()と同様に範囲を指定して検索することもできます。

in演算子を使用した文字の検索方法

「in演算子」を使用すると、文字列の中に調べたい文字が存在するかどうかを調べることができます。

調べたい文字 in 文字列

存在すればTrueを、存在しなければFalseを返します。

以下のプログラムは、in演算子を用いて文字が存在するかを判定するプログラムです。

str = "Python初心者の備忘録"

print("初心者" in str)
print("ビギナー" in str)

実行結果

True
False

in演算子では、検索したい文字が存在する個数まではわかりません。

個数を数える

検索したい文字の個数を数えたい時には、「count()」を使います。

以下のプログラムは、検索したい文字列の個数を数えるプログラムです。

str = "PythonPythonPython"

print(str.count("Python"))

実行結果

3

まとめ

今回の記事では、以下の内容を紹介しました。

  • find()
    先頭から検索
  • rfind()
    末尾から検索
  • in演算子
    存在するかどうか判定
     個数を数えるときは「count()」
Python初心者
これで文字列にどんなことが書いてあるか検索できるようになったね!

文字列の検索方法をしっかりと覚えておきましょう!