パターン・ファインダー
CoddyのPythonジャーニー「基礎」セクションの一部。レッスン 76/77。
チャレンジ
中級find_occurrencesという名前の関数を作成してください。この関数は次の処理を行います。
- 2つの文字列引数、
textとpatternを受け取る text内にpatternが何回出現するかを、重なり合う出現も含めて数える- 次の内容を含むタプルを返す
- パターンが見つかったかどうかを示すブール値(True/False)
- パターンの出現回数
- パターンが見つかった開始位置のリスト
たとえば、textが"abababab"で、patternが"aba"の場合、"aba"は位置0、2、4に出現するため、関数は(True, 3, [0, 2, 4])を返す必要があります。
パターンが見つからない場合は、(False, 0, [])を返してください。
passキーワードについて: デフォルトのコードにpassがあるのが見えるでしょう。これは「何もしない」という意味のPythonキーワードで、Pythonでインデントされたコードブロック(関数の中など)が必要な場合に、プレースホルダーとして使用されます。passを実際の関数コードに置き換えてください。
自分で試してみよう
def find_occurrences(text, pattern):
# ここにコードを書いてください
pass
# 入力を読み取る
text = input()
pattern = input()
# 関数を呼び出して結果を出力する
result = find_occurrences(text, pattern)
print(result)基礎のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ