Сравнение списков - домашнее задание Python - PullRequest
0 голосов
/ 14 июля 2011
 correct_ans = ['B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C', 'D', 'B', 'C', \
               'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A']

вот мое заявление на импорт списка из текстового файла

 # import user answers into a list
 infile = open('testscores.txt', 'r')
 driver_ans = infile.readlines()
 infile.close()

 driver_ans = ['B', 'D', 'A', 'A', 'C', 'B', 'B', 'A', 'C', 'D', 'B', 'C', \
               'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A']

    for index in range(0, 20):
         if driver_ans[index] == correct_ans[index]:
             total_correct += 1
         else:
             wrong_ans.append(index + 1)

Эта логика продолжает возвращать, что все неправильные ответы. Это не правильно сравнивать визуально мой список "correct_ans" и мой список "driver_ans". Что я делаю неправильно?!

Ответы [ 2 ]

2 голосов
/ 14 июля 2011

Функция readlines() возвращает строки, которые включают завершающий символ новой строки. Итак, попробуйте:

driver_ans = [x.strip() for x in infile.readlines()]
2 голосов
/ 14 июля 2011

Только гадать. Если testscores.txt имеет содержимое

B
D
A
A
...

имейте ввиду, что driver_ans будет

['B\n', 'D\n', 'A\n', 'A\n', ...

попробуй возможно

driver_ans = [x.strip ('\n') for x in infile.readlines()]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...