上級実践課題:文字列操作スクリプト
では続きとして、「上級:実践課題(実用的な文字列操作スクリプト)」を、
プログラミング初心者でもステップで理解できるように、
3問(+解答・解説付き) 用意します。
実践1:メール文の自動整形
📝 問題
次のような入力文を受け取り、改行・整形してきれいなメール文として出力してください。
入力文:
text = "to:alice@example.com subject:meeting body:let's meet tomorrow at 10am"
Python出力結果(期待):
To: alice@example.com
Subject: meeting
Body: let's meet tomorrow at 10am
✅ 解答
text = "to:alice@example.com subject:meeting body:let's meet tomorrow at 10am"
# 各部分を空白で分割
parts = text.split(" ")
for part in parts:
# コロンの前後で分割
key, value = part.split(":")
# keyを先頭大文字に整形
print(f"{key.capitalize()}: {value}")
Python💡 解説
.split(" ")→ スペースで区切り、各パートを取り出す.split(":")→key:valueのペアを分ける.capitalize()→ 先頭だけ大文字に(to→To)f"{key}: {value}"→ フォーマット文字列(見やすく出力)
実践2:単語カウントツール
📝 問題
文の中に登場する単語の数を数えるプログラムを作ってください。
入力:
text = "apple banana apple orange banana apple"
Python出力結果(期待):
apple: 3
banana: 2
orange: 1
✅ 解答
text = "apple banana apple orange banana apple"
# 単語を分割
words = text.split()
# 結果を記録する辞書を作成
count = {}
for word in words:
if word in count:
count[word] += 1
else:
count[word] = 1
# 出力
for k, v in count.items():
print(f"{k}: {v}")
Python💡 解説
.split()→ 空白で単語を分割dict(辞書型)を使って単語の登場回数をカウントcount[word] += 1で出現回数を増やす- 最後に
for k,v in count.items()で出力
ワンライナー版(短く書くなら)
from collections import Counter
print(Counter(text.split()))
Python→ 出力:Counter({'apple': 3, 'banana': 2, 'orange': 1})
実践3:検索ツール(部分一致検索)
📝 問題
リスト内の文字列から、キーワード "Python" を含むものだけを表示してください。
入力:
texts = [
"I love Python programming",
"JavaScript is fun",
"Python is powerful",
"Let's study Go"
]
Python期待する出力:
I love Python programming
Python is powerful
✅ 解答
texts = [
"I love Python programming",
"JavaScript is fun",
"Python is powerful",
"Let's study Go"
]
keyword = "Python"
for text in texts:
if keyword in text:
print(text)
Python💡 解説
"Python" in text→ 部分一致で検索できる。- 条件に合うものだけ出力。
- 応用すれば、検索機能付きのミニツールやログフィルタも作れる。
まとめ(上級編で学んだこと)
| 操作 | 使った技 | 説明 |
|---|---|---|
| 文の整形 | split, capitalize, f文字列 | テキストを区切って整える |
| 集計 | dict, Counter, split() | 単語やデータの出現回数を数える |
| 検索 | in 構文 | 特定文字列を含むデータを抽出 |
