Проблема
Когда вы открываете файл, появляется cursor
, который указывает на текущую позицию в файле. При первом вызове функции этот курсор находится в начале файла. Таким образом, он читает все содержимое, и ваша программа работает хорошо.
Но, когда вы вызываете функцию во второй раз, cursor
находится в Конце файла . Итак, больше нет символов для чтения. Вы можете проверить это, добавив оператор print(line)
внутри функции l oop из number_avoids
.
Решение
Есть встроенная функция для перемещения курсора файла. Вы можете использовать его, чтобы переместить курсор в исходное положение:
...
print(number_avoids("a"))
fin.seek(0)
print(number_avoids("a"))
. Он переместит ваш курсор в начало файла. Таким образом, все содержимое файла будет прочитано и оценено снова.
Примечание : Я попытался сделать этот ответ как базовый c, насколько это возможно, чтобы его можно было понять кто-нибудь без знания обработки файлов. Не стесняйтесь спрашивать любые пояснения в комментариях.