Pythonミニ制作:簡単なクイズゲームを作る

入門 | 13分 で読める | 2026.07.13

公式ドキュメント

今回やること

複数の問題を順番に出すクイズゲームを作ります。

今回は動作確認しやすいように、回答もプログラム内に用意します。

クイズゲームは、問題と正解を辞書で持ち、リストを順に回して回答を比較し、正解数を数えるアプリです。辞書操作比較演算子を先に確認します。

完成コード

quiz_game.py を作ります。

questions = [
    {"question": "Pythonの拡張子は?", "answer": ".py", "user_answer": ".py"},
    {"question": "リストを作る記号は?", "answer": "[]", "user_answer": "[]"},
    {"question": "関数を作るキーワードは?", "answer": "def", "user_answer": "def"},
]

score = 0

for item in questions:
    print(item["question"])

    if item["user_answer"] == item["answer"]:
        print("正解")
        score += 1
    else:
        print("不正解")

print("----------")
print(f"結果: {score}/{len(questions)}問正解")

動作確認

python quiz_game.py

結果: 3/3問正解 と表示されれば成功です。

実際に入力する形へ進む

固定したuser_answerの代わりに、ループ内で次のように入力を受け取ります。

user_answer = input("答え: ").strip()

if user_answer == item["answer"]:
    print("正解")
    score += 1
else:
    print(f"不正解。正解は {item['answer']} です")

printとinputを確認し、正解と不正解を少なくとも1回ずつ試します。英字の大小を無視するかは仕様として決め、必要なら比較する両方へcasefold()を使います。

コードの考え方

  • 1問分の情報は辞書で表します
  • 問題一覧はリストにします
  • 正解なら score += 1 で点数を増やします
  • len(questions) で問題数を表示します

よくあるエラー

エラー原因修正
KeyErrorキー名が違うquestion, answer を確認
点数が増えないscore += 1 がない正解時に加算する
全部不正解文字列が一致していない空白や大文字小文字を確認

score = 0をループ内へ置くと問題ごとに0へ戻ります。問題リストが空なら0/0問正解になるため、まず1問だけで動かしてから増やしてください。

練習

  1. 問題を5問に増やす
  2. 1問だけ不正解にして動きを見る
  3. input() を使う形に変える

次のステップ

点数をもとに判定する処理は Pythonミニ制作:成績判定ツール に進みます。

式をランダムに生成する方式は計算ドリルで練習できます。

参考リソース

← 一覧に戻る
PR
PR
PR
PR