Python | レベル別練習問題:比較演算子

Python
スポンサーリンク

では、「比較演算子(==, !=, <, >, <=, >=, 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 == 1None is None など、Python特有の比較も含めています。
タイトルとURLをコピーしました