Варианты ответов | Python
Если смотреть по картинке, то видно, что у меня стоит and
и пользователь может написать 1
из
правильных ответов,
но можно ли сделать так, чтобы человек мог ответить не одним штатом, а 2-3
?
print('Четвертый вопрос! Какой 1 из Штатов США омывается Мексиканским заливом?')
q4 = input('Введи ответ: ')
if q4 == 'Техас' and 'Луизана' and 'Миссисипи' and 'Алабама' and 'Флорида':
print('Молодец! Идем дальше!')
a = a + 1
else:
print('Это сложный вопрос, не расстраивайся! Идем дальше!')
a = a + 0
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Как вариант:
import collections
questions = [
'Вопрос 1',
'Вопрос 2',
'Вопрос 3',
'Четвертый вопрос! \nКакой 1 из Штатов США омывается Мексиканским заливом?',
'Вопрос 5',
]
answers = [
('ответ на первый вопрос',),
('1', '2'),
('12345',),
('Техас', 'Луизана', 'Миссисипи', 'Алабама', 'Флорида'),
('5',),
]
number_of_correct_answers = 0
for i, question in enumerate(questions):
print(f'Вопрос #{i+1}! \n{question}')
_question = input('Введи ответ (если правильных ответов несколько, введите их через запятую): \n')
_question = list(map(lambda x: x.strip(), _question.strip().split(',')))
if collections.Counter(_question) == collections.Counter(answers[i]): #_question in answers[i]:
print('Молодец! Идем дальше!\n')
number_of_correct_answers += 1
else:
print('Это сложный вопрос, не расстраивайся! Идем дальше!\n')
print(f'Всего вопросов: {len(questions)}; \nПравильных ответов: {number_of_correct_answers}.')
Автор решения: CameL
→ Ссылка
Если вы хотите запросить у пользователя несколько ответов, то вы можете считать их в строку, а затем разбить по разделителю методом split(). Только учитывайте, что если вы запрашиваете у пользователя несколько вариантов, то ответ может быть частично правильным
print('Четвертый вопрос! Какой 1 из Штатов США омывается Мексиканским заливом?')
q4 = input('Введи несколько штатов через пробел: ')
a = 0
if {'Техас', 'Луизана','Миссисипи', 'Алабама','Флорида'} >= set(q4.split()):
print('Молодец! Идем дальше!')
a = a + 1
elif {'Техас', 'Луизана','Миссисипи', 'Алабама','Флорида'} & set(q4.split()):
print('Почти получилось!')
a = a + 0.5
else:
print('Это сложный вопрос, не расстраивайся! Идем дальше!')
a = a + 0
Для того чтобы искать пересечения и принадлежность одного списка к другому их лучше преобразовать во множества