今回やること
英単語と意味をセットで持つ単語帳アプリを作ります。
「問題」と「答え」のような組み合わせは、辞書で表すと分かりやすくなります。
1枚を辞書、複数枚をリスト、表示処理を関数にすると、単語を増やしても同じ処理を再利用できます。辞書操作、リスト操作、関数の基本を組み合わせる制作です。
完成コード
flashcard_app.py を作ります。
cards = [
{"word": "apple", "meaning": "りんご"},
{"word": "book", "meaning": "本"},
{"word": "study", "meaning": "勉強する"},
]
def show_cards():
for card in cards:
print(f"問題: {card['word']}")
print(f"答え: {card['meaning']}")
print("---")
def count_cards():
return len(cards)
show_cards()
print(f"登録数: {count_cards()}件")
動作確認
python flashcard_app.py
3つの単語と 登録数: 3件 が表示されれば成功です。
答えをすぐ表示せず確認してから進みたい場合は、show_cards()内の答え表示前に次を加えます。
input("答えを見るにはEnterを押してください: ")
3枚が元の順番で表示され、最後に登録数が3件なら、リストと関数がつながっています。
コードの考え方
- 1枚のカードは辞書です
- 複数のカードはリストです
- 表示処理を
show_cardsにまとめます - 件数計算を
count_cardsに分けます
よくあるエラー
| エラー | 原因 | 修正 |
|---|---|---|
KeyError | word や meaning のスペル違い | キー名をそろえる |
SyntaxError | 辞書のカンマ忘れ | 各行の区切りを確認 |
| 件数が違う | リストの外に辞書を書いた | cards = [...] の中に入れる |
cardsが空なら単語は表示されず、登録数は0件になります。show_cardsを定義しただけで呼び出していない場合も何も表示されないため、末尾の関数呼び出しを確認します。
練習
- 単語を5個に増やす
- 日本語から英語を答える形に変える
add_card関数を作る
次のステップ
正誤判定と点数表示へ進む場合はPythonミニ制作:クイズゲームを作ります。