では、「比較演算子(==, !=, <, >, <=, >=, is, in など)」の学習用に、
50問の自動採点付き Python スクリプト を作成します。
ファイル名例:compare_quiz.py
このスクリプトを実行すると、
- 各問題が自動で出題され、
- あなたの解答を入力すると即時採点、
- 最後に正答率が表示されます!
# compare_quiz.py
# ===========================================
# Python 比較演算子 練習50問(自動採点付き)
# ===========================================
# 作者: ChatGPT教材版
# 対象: プログラミング初心者
import sys
# -----------------------------
# Q&Aデータセット(問題, 正解)
# -----------------------------
quiz_data = [
# --- 基礎レベル (1-10) ---
("5 == 5", True),
("5 != 3", True),
("4 < 2", False),
("10 > 5", True),
("7 >= 7", True),
("3 <= 2", False),
("'a' == 'A'", False),
("'abc' != 'abd'", True),
("10 == 10.0", True),
("True == 1", True),
# --- 初級レベル (11-20) ---
("len('cat') == 3", True),
("'dog' < 'zebra'", True),
("'apple' > 'banana'", False),
("100 >= 200", False),
("5 * 2 == 10", True),
("10 / 2 != 5", False),
("'a' in 'apple'", True),
("'x' in 'apple'", False),
("'app' not in 'apple'", False),
("'pp' in 'apple'", True),
# --- 中級レベル (21-30) ---
("[1,2] == [1,2]", True),
("[1,2] is [1,2]", False),
("x = [1,2]; y = x; x is y", True),
("(3 > 2) and (2 > 1)", True),
("(3 > 2) and (2 < 1)", False),
("(3 > 2) or (2 < 1)", True),
("not (5 > 2)", False),
("10 == 5 * 2", True),
("'Hello'.lower() == 'hello'", True),
("'HELLO'.isupper() == True", True),
# --- 中級応用 (31-40) ---
("10 < 20 < 30", True),
("5 < 10 > 2", True),
("10 == 5 + 5 == True", False),
("not (3 < 5)", False),
("(3 < 5) and not (2 > 1)", False),
("(3 < 5) or not (2 > 1)", True),
("None is None", True),
("0 == False", True),
("'' == False", False),
("[] == False", False),
# --- 応用・実務編 (41-50) ---
("'error' in 'log_error_message'", True),
("'ok' not in 'error_log'", True),
("10 != 10.0", False),
("'Python' > 'java'", True),
("'A' < 'a'", True),
("'あ' > 'い'", False),
("'10' == 10", False),
("type(10) == int", True),
("type(10.0) == float", True),
("isinstance('abc', str)", True),
]
# -----------------------------
# 採点処理
# -----------------------------
score = 0
print("=== Python 比較演算子クイズ(全50問)===")
print("正しいと思うなら T(または True)、間違いなら F(または False)を入力してください。\n")
for i, (expr, ans) in enumerate(quiz_data, start=1):
print(f"Q{i:02d}: {expr}")
user = input("→ あなたの答え (T/F): ").strip().lower()
# 入力解釈
if user in ("t", "true", "1", "yes"):
user_val = True
elif user in ("f", "false", "0", "no"):
user_val = False
else:
print("⚠️ 無効な入力です。スキップします。\n")
continue
# 判定
if user_val == ans:
print("✅ 正解!\n")
score += 1
else:
print(f"❌ 不正解。正解は {ans} です。\n")
# -----------------------------
# 結果表示
# -----------------------------
print("====================================")
print(f"正解数: {score} / {len(quiz_data)}")
print(f"正答率: {score / len(quiz_data) * 100:.1f}%")
if score == len(quiz_data):
print("🎉 パーフェクト!すばらしい理解力です!")
elif score >= 40:
print("💪 よくできました!実務でも通用します!")
elif score >= 25:
print("👍 基本はつかめています。もう少し練習しましょう。")
else:
print("📘 もう一度、比較演算子の基礎を復習してみましょう。")
Python解説ポイント
==とisの違い、in/not inの動作、and/or/notの論理演算がすべて練習できます。"apple" < "banana"など 文字列の比較 も体感できます。True == 1やNone is Noneなど、Python特有の比較も含めています。
