Skip to content
This page has been auto-translated and may contain errors.View in English

フラッシュカード学習アプリ

Zee ねえ、ちょっと聞いて。6週間後に推進システムの試験があって、自分でテストする方がずっと覚えやすいんだ。フラッシュカードアプリを作ってくれない?ファイルからカードを読み込んで、表を見せてくれて、答えを入力したら正解かどうか教えてくれるやつ。あと進捗を保存して、続きからできるようにしたいな。お願い 🙏

作るもの

Deck: python-basics.json (12 cards)

Front: What does len() return for a string?
Your answer: the number of characters
Correct!

Front: What type does input() always return?
Your answer: int
Incorrect. The answer is: str

---
Session complete: 8/12 correct.
Progress saved.

必要なもの

ヒント

クラスではなく、データから始めましょう。 カードは2つの文字列、表と裏です。デッキはカードのリストです。まずそれを動かしてから、よりきれいなインターフェースが欲しければクラスで包みましょう。

JSONがファイル形式を扱います。 json.load() はファイルをPythonのリストや辞書として読み込みます。json.dump() は逆に書き出します。json モジュールは標準ライブラリに含まれています。

ファイル読み込みを try/except で囲みましょう。 スクリプトを初めて実行したときは、保存ファイルが存在しません。FileNotFoundError をキャッチすることで、クラッシュせずに空のデッキで始めることができます。

さらに進めて

コアの学習ループが動いたら:

  • 間違えた答えを繰り返す。 プレイヤーが間違えたカードを記録し、セッションの最後にもう一度ループしましょう。
  • 複数のデッキ。 フォルダ内の利用可能な .json ファイルを一覧表示し、ユーザーに学習するデッキを選ばせましょう。
  • 間隔反復学習。 各カードが何回正解されたかを記録します。正解回数が少ないカードをより頻繁に表示しましょう。