Условия задачи:

 

Экзамен на получение водительских прав. Местный отдел по выдаче удостоверений на право вождения автомобиля попросил вас создать приложение, которое оценивает пись­менную часть экзамена на получение водительских прав. Экзамен состоит из 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()