← Все вопросы

Как сделать викторину (квиз) с вопросами и подсчётом очков на Python?

Задан 22 месяца назад1.1к просмотров1 ответ
5

Хочу сделать квиз: программа задаёт вопросы, я отвечаю, в конце она говорит, сколько правильных. Сделал три вопроса через кучу if подряд, но получилось громоздко и некрасиво. Как сделать аккуратнее, чтобы легко добавлять новые вопросы?

1 ответ

11
✓ Принятый ответ — помог автору

Храни вопросы и ответы в списке, а проверку делай в цикле — тогда добавить вопрос = просто дописать строчку.

quiz = [
    ('Столица Франции?', 'париж'),
    ('2 + 2 * 2 = ?', '6'),
    ('Язык со змейкой в логотипе?', 'python'),
]

score = 0
for question, answer in quiz:
    user = input(question + ' ').strip().lower()
    if user == answer:
        print('Верно!')
        score += 1
    else:
        print(f'Неверно, правильный ответ: {answer}')

print(f'Твой результат: {score} из {len(quiz)}')

Каждый вопрос — это пара (вопрос, ответ). .strip().lower() убирает лишние пробелы и регистр, чтобы «Париж» и «париж» считались одинаковыми. Чтобы добавить вопрос — просто добавь кортеж в список, остальной код не трогаешь. Это и есть нормальная архитектура.

Ваш ответ

, чтобы ответить на вопрос.