КЕГЭ: при чтении файла построчно input() не работает — как правильно?
На КЕГЭ к заданиям типа 24 даётся текстовый файл. Дома пробую читать его через input() в цикле, но ловлю ошибку или пустоту. В чём подвох и как правильно читать файл в задачах ЕГЭ?
4 ответа
input() читает из стандартного ввода (клавиатуры/stdin), а не из файла. Чтобы читать файл, открывай его через open и не забывай убирать перевод строки.
with open('24.txt') as f:
s = f.read().strip() # всё содержимое одной строкой
# или построчно:
with open('24.txt') as f:
for line in f:
line = line.strip() # ВАЖНО: убрать '\n' и пробелы по краям
...
Главная ловушка после перехода с input(): каждая строка из файла приходит с \n на конце, поэтому почти всегда нужен .strip() (или .rstrip('\n')). Если в задании одна длинная строка символов — берёшь f.read().strip() и работаешь с ней как с обычной строкой. input() оставь для заданий, где данные реально вводятся вручную.
input() читает с клавиатуры, не из файла. Используй open('file.txt') и .read() или цикл по строкам с .strip().
Читал файл, забыл strip и сравнивал строку с '\n' на конце — час искал баг. Всегда .strip()!
Открывай файл через open, а не input.