Pythonミニ制作:計算ドリルを作る

入門 | 12分 で読める | 2026.07.13

公式ドキュメント

今回やること

ランダムな数字を使って、計算ドリルを作ります。

入力待ちにすると検証しづらいため、今回は答えもプログラム内で確認する形にします。

計算ドリルは、乱数で式を作り、input()の値を整数へ変換して正解と比較し、正解数を増やすアプリです。まず乱数の基本数値計算を確認してください。

完成コード

math_drill.py を作ります。

import random


def create_question():
    left = random.randint(1, 9)
    right = random.randint(1, 9)
    answer = left + right
    return left, right, answer


def check_answer(answer, user_answer):
    return answer == user_answer


random.seed(1)

for number in range(1, 4):
    left, right, answer = create_question()
    user_answer = answer
    result = check_answer(answer, user_answer)
    print(f"第{number}問: {left} + {right} = {user_answer}")
    print("正解" if result else "不正解")

動作確認

python math_drill.py

シード(乱数の並びを固定する値)付きの現在のコードでは、次の3問と正解が表示されれば問題生成と判定関数の確認は成功です。

第1問: 3 + 2 = 5
正解
第2問: 5 + 2 = 7
正解
第3問: 8 + 8 = 16
正解

入力して答える形へ進む

上のコードが動いたら、ループ内のuser_answer = answerを次へ置き換えます。

user_answer = int(input(f"第{number}問: {left} + {right} = "))

数字以外を入力するとValueErrorになります。入力と数値変換はprintとinput、失敗時に再入力させる方法はtry・exceptで段階的に追加します。

コードの考え方

  • random.randint(1, 9) で1〜9の整数を作ります
  • create_question は問題作成を担当します
  • check_answer は答え合わせを担当します
  • random.seed(1) は結果を検証しやすくするために入れています

よくあるエラー

エラー原因修正
NameErrorimport random がない先頭に書く
答えが合わない足し算以外に変えた計算式を確認
毎回結果が違うランダムの仕様練習中は seed を使う

練習

  1. 問題数を5問に増やす
  2. 引き算ドリルに変える
  3. 正解数を数える

固定問題をリストで管理する方式はクイズゲームで比較できます。

次のステップ

次は、数字の合計を扱う簡単な家計簿へ進みます。

参考リソース

← 一覧に戻る
PR
PR
PR
PR