解読関数を実装する
このステップでは、頭韻詩のメッセージを解読するための acrostic_poetry_decryption(poem) 関数を実装します。
以下は acrostic_poetry.py ファイルのスターターコードです。
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
各行の最初の単語を抽出して連結することで、頭韻詩のメッセージを解読します。
"""
## 入力内容が空の場合、`None` を返します
if not poem:
return None
## TODO: 解読ロジックを実装する
## 1. ',' または '.' 区切り文字を使って詩を行に分割する
## 2. 各行から最初の単語を抽出する
## 3. 最初の単語を連結して解読テキストを取得する
## 4. 結果の文字列を `decryption_text` 変数に代入する
return decryption_text
解読関数を実装する方法は以下の通りです。
re.split() 関数と r"[,.]" 正規表現パターンを使って、poem 文字列を行のリストに分割します。
- 行のリストをループし、各行に対して、空白で分割して最初の要素を取ることで最初の単語を抽出します。
- すべての最初の単語を連結して解読テキストを取得します。
- 解読テキストを
decryption_text 変数に代入して返します。
以下は完成したコードです。
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
各行の最初の単語を抽出して連結することで、頭韻詩のメッセージを解読します。
"""
## 入力内容が空の場合、`None` を返します
if not poem:
return None
## ',' または '.' 区切り文字を使って詩を行に分割する
lines = re.split(r"[,.]", poem)
## 各行から最初の単語を抽出する
words = [line.strip().split(" ")[0] for line in lines]
## 最初の単語を連結して解読テキストを取得する
decryption_text = "".join(words)
return decryption_text