Обсуждение участницы:Nerrdsy

Обсуждение страницы Участница:Nerrdsy

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)