では応用編の課題を続けます。複数の文字列メソッドを組み合わせて処理する練習です。
応用編(複数メソッドの組み合わせ)
課題 1: 電話番号の正規化
問題:
ユーザーが入力した電話番号(例: " 03- 1234-5678 ")の前後の空白や、ハイフンの前後の空白を取り除いて、正しい形式("03-1234-5678")に整えて表示してください。
解答例:
phone = input("電話番号を入力してください: ")
# 前後の空白を削除
clean = phone.strip()
# ハイフンの前後の余計な空白を削除
parts = [p.strip() for p in clean.split("-")]
normalized = "-".join(parts)
print("正規化された番号:", normalized)
Python解説:
strip()で前後の空白を削除split("-")でハイフン区切りに分割- 各部分を
strip()で整える join()で再びハイフンで結合
課題 2: ファイル拡張子チェック
問題:
ユーザーが入力したファイル名が .png または .jpg で終わるかを判定してください。大文字・小文字は区別しないようにしてください。
解答例:
filename = input("ファイル名を入力してください: ")
lowered = filename.lower().strip()
if lowered.endswith(".png") or lowered.endswith(".jpg"):
print("画像ファイルです")
else:
print("画像ファイルではありません")
Python解説:
lower()で小文字に統一strip()で余計な空白を削除endswith()で拡張子を判定
課題 3: 単語カウント
問題:
ユーザーが入力した文章を単語ごとに分割し、単語数を表示してください。さらに "Python" が何回出てくるか数えてください。
解答例:
text = input("文章を入力してください: ")
words = text.split()
print("単語数:", len(words))
print("'Python' の出現回数:", text.count("Python"))
Python解説:
split()で空白区切りに分割len()で単語数を数えるcount()で特定単語の出現回数を数える
課題 4: パスの整理
問題:
ユーザーが入力したパス(例: "///home///user///docs///") の前後のスラッシュを削除し、フォルダ名を " / " で結合して表示してください。
解答例:
path = input("パスを入力してください: ")
clean = path.strip("/")
parts = clean.split("/")
normalized = " / ".join(parts)
print("整理されたパス:", normalized)
Python解説:
strip("/")で前後のスラッシュを削除split("/")でフォルダごとに分割" / ".join()で見やすく結合
これで「複数のメソッドを組み合わせて処理する」練習ができます。
次は「チャレンジ課題(自分で関数を作って再利用する)」に進めても面白いですよ。
