Условные проверки пропускаются после 2-й итерации - PullRequest
0 голосов
/ 02 октября 2018

Python новичок здесь, хотел бы понять, что происходит с моим фрагментом кода ниже?Я предполагаю, что чтение из файла CSV и проверить входные данные пользователя по этому файлу.Если введенный пользователем идентификатор студента существует в CSV, программа начнет печатать всю существующую информацию, относящуюся к идентификатору студента.

Содержимое файла CSV выглядит следующим образом:

first_name,last_name,student_id,Math,Science,English,Art 
Peter,Tan,S1012342D,89,67,54,78
John,Lim,S1014322H,87,78,86,67
Ada,Ang,S1023456I,54,78,65,54

В настоящее время, если я ввожу правильный идентификатор при первом запуске программы, пока все работает правильно, все выходы выходят.Но когда я намеренно ввел неправильный ввод и впоследствии ввел правильный ввод, он не может прочитать правильный ввод, и мой вывод содержимого не появляется.

Код, над которым я работаю, выглядит следующим образом
enter image description here Буду надеяться, что кто-то может указать, что я делаю неправильно или недоразумение.

1 Ответ

0 голосов
/ 02 октября 2018

csv.DictReader возвращает итератор, поэтому, если вы исчерпаете его, повторяя его, вы не сможете повторить его снова без сброса позиции файла.

Изменение:

if(check == False):

до:

if(check == False):
    csvfile.seek(0)
    next(reader) # skip the header
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...