Обсуждение участницы:Nerrdsy: различия между версиями

Обсуждение страницы Участница:Nerrdsy
(Новая страница: «123»)
 
Нет описания правки
Строка 1: Строка 1:
123
import random
 
def run_quiz(questions):
    """
    Проводит интерактивный тест на основе предоставленных вопросов.
 
    Args:
        questions (list): Список словарей, где каждый словарь содержит:
            'question': Текст вопроса (str)
            'options': Список вариантов ответов (list of str)
            'answer': Правильный ответ (str)
    """
    score = 0
    random.shuffle(questions) # Перемешиваем вопросы для разнообразия
 
    print("Добро пожаловать в викторину!\n")
 
    for i, q_data in enumerate(questions):
        question = q_data['question']
        options = q_data['options']
        correct_answer = q_data['answer']
 
        print(f"Вопрос {i + 1}: {question}")
 
        # Перемешиваем варианты ответов для каждого вопроса
        shuffled_options = list(options)
        random.shuffle(shuffled_options)
 
        # Отображаем варианты ответов с буквами (A, B, C, D...)
        option_letters = {}
        for j, option in enumerate(shuffled_options):
            letter = chr(ord('A') + j) # Получаем буквы A, B, C...
            print(f" {letter}) {option}")
            option_letters[letter] = option
 
        while True:
            user_answer_letter = input("Ваш ответ (A, B, C...): ").upper()
            if user_answer_letter in option_letters:
                user_answer = option_letters[user_answer_letter]
                break
            else:
                print("Некорректный ввод. Пожалуйста, выберите букву из предложенных вариантов.")
 
        if user_answer == correct_answer:
            print("Правильно!\n")
            score += 1
        else:
            print(f"Неправильно. Правильный ответ: {correct_answer}\n")
 
    print(f"Викторина окончена! Ваш результат: {score} из {len(questions)}")
    percentage = (score / len(questions)) * 100 if questions else 0
    print(f"Процент правильных ответов: {percentage:.2f}%\n")
 
# --- Пример использования ---
 
# Список вопросов для теста
# Каждый вопрос - это словарь с ключами 'question', 'options', 'answer'
quiz_questions = [
    {
        'question': "Какая столица Франции?",
        'options': ["Берлин", "Мадрид", "Париж", "Рим"],
        'answer': "Париж"
    },
    {
        'question': "Сколько планет в Солнечной системе?",
        'options': ["7", "8", "9", "10"],
        'answer': "8"
    },
    {
        'question': "Какое химическое соединение имеет формулу H2O?",
        'options': ["Кислород", "Водород", "Вода", "Соль"],
        'answer': "Вода"
    },
    {
        'question': "Кто написал 'Война и мир'?",
        'options': ["Федор Достоевский", "Антон Чехов", "Иван Тургенев", "Лев Толстой"],
        'answer': "Лев Толстой"
    },
    {
        'question': "Сколько дней в високосном году?",
        'options': ["365", "366", "367", "360"],
        'answer': "366"
    }
]
 
if __name__ == "__main__":
    run_quiz(quiz_questions)

Версия от 19:00, 18 октября 2025

import random

def run_quiz(questions):

   """
   Проводит интерактивный тест на основе предоставленных вопросов.
   Args:
       questions (list): Список словарей, где каждый словарь содержит:
           'question': Текст вопроса (str)
           'options': Список вариантов ответов (list of str)
           'answer': Правильный ответ (str)
   """
   score = 0
   random.shuffle(questions) # Перемешиваем вопросы для разнообразия
   print("Добро пожаловать в викторину!\n")
   for i, q_data in enumerate(questions):
       question = q_data['question']
       options = q_data['options']
       correct_answer = q_data['answer']
       print(f"Вопрос {i + 1}: {question}")
       # Перемешиваем варианты ответов для каждого вопроса
       shuffled_options = list(options)
       random.shuffle(shuffled_options)
       # Отображаем варианты ответов с буквами (A, B, C, D...)
       option_letters = {}
       for j, option in enumerate(shuffled_options):
           letter = chr(ord('A') + j) # Получаем буквы A, B, C...
           print(f" {letter}) {option}")
           option_letters[letter] = option
       while True:
           user_answer_letter = input("Ваш ответ (A, B, C...): ").upper()
           if user_answer_letter in option_letters:
               user_answer = option_letters[user_answer_letter]
               break
           else:
               print("Некорректный ввод. Пожалуйста, выберите букву из предложенных вариантов.")
       if user_answer == correct_answer:
           print("Правильно!\n")
           score += 1
       else:
           print(f"Неправильно. Правильный ответ: {correct_answer}\n")
   print(f"Викторина окончена! Ваш результат: {score} из {len(questions)}")
   percentage = (score / len(questions)) * 100 if questions else 0
   print(f"Процент правильных ответов: {percentage:.2f}%\n")
  1. --- Пример использования ---
  1. Список вопросов для теста
  2. Каждый вопрос - это словарь с ключами 'question', 'options', 'answer'

quiz_questions = [

   {
       'question': "Какая столица Франции?",
       'options': ["Берлин", "Мадрид", "Париж", "Рим"],
       'answer': "Париж"
   },
   {
       'question': "Сколько планет в Солнечной системе?",
       'options': ["7", "8", "9", "10"],
       'answer': "8"
   },
   {
       'question': "Какое химическое соединение имеет формулу H2O?",
       'options': ["Кислород", "Водород", "Вода", "Соль"],
       'answer': "Вода"
   },
   {
       'question': "Кто написал 'Война и мир'?",
       'options': ["Федор Достоевский", "Антон Чехов", "Иван Тургенев", "Лев Толстой"],
       'answer': "Лев Толстой"
   },
   {
       'question': "Сколько дней в високосном году?",
       'options': ["365", "366", "367", "360"],
       'answer': "366"
   }

]

if __name__ == "__main__":

   run_quiz(quiz_questions)