今回やること
ランダムな数字を使って、計算ドリルを作ります。
入力待ちにすると検証しづらいため、今回は答えもプログラム内で確認する形にします。
完成コード
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問分の問題と 正解 が表示されれば成功です。
コードの考え方
random.randint(1, 9)で1〜9の整数を作りますcreate_questionは問題作成を担当しますcheck_answerは答え合わせを担当しますrandom.seed(1)は結果を検証しやすくするために入れています
よくあるエラー
| エラー | 原因 | 修正 |
|---|---|---|
NameError | import random がない | 先頭に書く |
| 答えが合わない | 足し算以外に変えた | 計算式を確認 |
| 毎回結果が違う | ランダムの仕様 | 練習中は seed を使う |
練習
- 問題数を5問に増やす
- 引き算ドリルに変える
- 正解数を数える
次のステップ
数字の合計を扱う実用例として Pythonミニ制作:簡単な家計簿 に進みます。