← Все вопросы
Как сделать викторину (квиз) с вопросами и подсчётом очков на Python?
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() убирает лишние пробелы и регистр, чтобы «Париж» и «париж» считались одинаковыми. Чтобы добавить вопрос — просто добавь кортеж в список, остальной код не трогаешь. Это и есть нормальная архитектура.
Ваш ответ
, чтобы ответить на вопрос.