Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3607870
А
Аноним
28 апреля 2026 04:28 · публичный вопрос
А
Аноним

Сделай рабочий код для теста в идл 8 класс

Ответ нейросети
28 апреля 2026 04:28

Ниже рабочий пример кода для теста в IDE (Python 3.x), подходящий для 8-го класса. Вставь этот файл в IDE (например, PyCharm, VSCode или просто в Python-среду) и запусти как test_quiz.py.

import random
import time

# Список вопросов: каждый вопрос — словарь с текстом, вариантами и индексом правильного ответа (1-based)
QUESTIONS = [
    {
        "text": "Упростите выражение: 2/3 + 1/6.",
        "options": ["5/6", "4/6", "3/6", "1/2"],
        "answer_index": 1
    },
    {
        "text": "Решите уравнение: 2x + 5 = 13. Найдите x.",
        "options": ["4", "3", "6", "5"],
        "answer_index": 1
    },
    {
        "text": "Найдите площадь прямоугольника со сторонами 7 и 4.",
        "options": ["25", "28", "14", "11"],
        "answer_index": 2
    },
    {
        "text": "Если y − 7 = 3, то y = ?",
        "options": ["10", "4", "3", "7"],
        "answer_index": 1
    },
    {
        "text": "Приведите к дроби: 0.75 =",
        "options": ["3/4", "1/2", "2/3", "1"],
        "answer_index": 1
    }
]

def run_quiz(questions, shuffle=False, show_immediate_feedback=True):
    """
    Запускает quiz из списка вопросов.
    - questions: список словарей с вопросами (как в QUESTIONS)
    - shuffle: перемешать порядок вопросов (по умолчанию False)
    - show_immediate_feedback: показывать мгновенную обратную связь после каждого вопроса
    """
    if shuffle:
        random.shuffle(questions)

    score = 0
    per_question_results = []

    start_time = time.time()

    for idx, q in enumerate(questions, start=1):
        print(f"Вопрос {idx}. {q['text']}")
        for i, opt in enumerate(q['options'], start=1):
            print(f"  {i}. {opt}")

        # Ввод ответа пользователя с валидацией
        while True:
            answer = input("Ваш ответ (номер варианта): ").strip()
            if answer.isdigit():
                answer_idx = int(answer)
                if 1 <= answer_idx <= len(q['options']):
                    break
            print("Пожалуйста, введите корректный номер варианта.")

        is_correct = (answer_idx == q['answer_index'])
        per_question_results.append((idx, is_correct))

        if is_correct:
            score += 1
            if show_immediate_feedback:
                print("Верно!")
        else:
            correct_text = q['options'][q['answer_index'] - 1]
            if show_immediate_feedback:
                print(f"Неправильно. Правильный ответ: {q['answer_index']}. {correct_text}")
        print()

    elapsed = time.time() - start_time
    total = len(questions)
    percent = (score / total) * 100 if total > 0 else 0.0

    print(f"Итог: {score} из {total}. {percent:.1f}% за {elapsed:.1f} сек.")

    # Возврат результата можно использовать дальше в программе (например, сохранить)
    return {
        "score": score,
        "total": total,
        "percent": percent,
        "time_sec": elapsed,
        "details": per_question_results
    }

if __name__ == "__main__":
    # По умолчанию без перемешивания; можно задать shuffle=True
    result = run_quiz(QUESTIONS, shuffle=False, show_immediate_feedback=True)

Как это работает (пошагово):

  • QUESTIONS — список вопросов. Каждый вопрос содержит текст, варианты и индекс правильного варианта (индекс в списке options считается с 1).
  • run_quiz принимает этот список и опционально перемешивает порядок вопросов.
  • Программа по каждому вопросу выводит текст и варианты, просит пользователя ввести номер варианта и валидирует ввод.
  • Сравнивает введённый номер с правильным answer_index. При правильном ответе увеличивает счёт, выдаёт "Верно!"; при неверном — сообщает правильный ответ.
  • По завершении выводит итоговую статистику: сколько баллов набрано, процент и общее время выполнения.
  • Возвращает словарь с результатами, который можно использовать дальше (например, сохранить в файл).

Как адаптировать под себя:

  • Замени QUESTIONS на свой набор задач, под нужный предмет (математика, география и т.д.).
  • Измени количество вопросов: можно добавить больше вариантов, или меньше.
  • Включи shuffle=True, чтобы порядок вопросов случайно менялся при каждом запуске.
  • Оставь show_immediate_feedback=False, если хочешь, чтобы обратная связь показывалась только в конце.

Дополнительно:

  • Если хочешь готовый аналог на Java или JavaScript (для работы в браузере), скажи — подготовлю версию под конкретный язык и среду.

Если нужно, могу адаптировать код под конкретный предмет или класс (например, добавить формулы для геометрии, задачи на проценты и т.д.).