Условия задачи:
Экзамен на получение водительских прав. Местный отдел по выдаче удостоверений на право вождения автомобиля попросил вас создать приложение, которое оценивает письменную часть экзамена на получение водительских прав. Экзамен состоит из 20 вопросов
с множественным выбором. Вот правильные ответы:
1.А 6.B 11.А 16.C
2.C 7.C 12.D 17.B
3.A 8.А 13.C 18.B
4.А 9.C 14.A 19.D
5.D 10.B 15.D 20.А
Ваша программа должна сохранить эти правильные ответы в списке. Программа должна прочитать из текстового файла ответы испытуемого на каждый из 20 вопросов и сохранить эти ответы в еще одном списке. (Создайте собственный текстовый файл для
тестирования приложения или же воспользуйтесь файлом student_solution.txt, который можно найти в исходном коде главы 7.) После того как ответы испытуемого будут считаны из файла, программа должна вывести сообщение о том, сдал испытуемый экзамен или нет.
(Для сдачи экзамена испытуемый должен правильно ответить на 15 из 20 вопросов.) Затем программа должна вывести общее количество вопросов, ответы на которые были правильными, общее количество вопросов, ответы на которые были неправильными,
и список с номерами вопросов, ответы на которые были неправильными.
Решение задачи:
вероятно в задаче недописано условие что после создания списка
#программа должна записать список ответов пользователя в файл
def main():
QUESTION = 20
CORRECT = 15
def get_users_answer():
answer_list = []
for i in range(QUESTION):
users_answer = input(f'На вопрос {i+1} введите один из вариантов ответа A B C D:')
answer_list.append(users_answer)
return answer_list
def write_users_list(value_list):
with open('user.txt', 'w') as out_file:
for i in value_list:
out_file.write(i+'\n')
print('Данные записаны в файл')
def get_users_list():
answer_list = []
with open('user.txt', 'r') as in_file_user:
for i in in_file_user:
answer_list.append(i.rstrip('\n'))
return answer_list
def get_correct_answer():
with open('student_solution.txt', 'r') as in_file_correct:
correct_list = []
for i in in_file_correct:
correct_list.append(i.rstrip('\n'))
return correct_list
def check (value_1, value_2):
incorrect_list = []
totall_correct = 0
for i in range(QUESTION):
if value_1[i] == value_2[i]:
totall_correct += 1
else:
incorrect_list.append(i+1)
if totall_correct >= CORRECT:
print('Экзамен сдан!')
else:
print('Экзамен не сдан!')
print(f'Общее количество вопросов с правильными ответами - {totall_correct},\n'
f'общее количество вопросов с неправильными ответами {QUESTION -totall_correct},\n'
f'вопросы на которые ответ был неправильным {incorrect_list}')
answer_list = get_users_answer()
write_users_list(answer_list)
answer_list = get_users_list()
correct_list = get_correct_answer()
check(answer_list, correct_list)
main()