Как удалить ошибку EOFError: EOF при чтении строки?

В принципе, мне нужно проверить, появляется ли определенный шаблон в строке или нет. Если да, то я должен вывести эту строку, иначе нет. Вот мой код:

p = input()
 while 1:
   line = input()
   a=line.find(p)
   if a!=-1:
     print(line)
   if line=='':
     break

Этот код кажется хорошим и принимается как правильный ответ. Но есть одна загвоздка. Я получаю ошибку времени выполнения EOFError: EOF при чтении строки, которая игнорируется сайтом тестирования кода.

У меня три вопроса:

  1. Почему она пропускается?
  2. Как ее удалить?
  3. Есть ли лучший способ решить эту проблему?

Ничего не упускается из виду. Согласно документации input выдает ошибку EOFError, когда встречает условие конца файла. По сути, input сообщает вам, что мы закончили, и читать больше нечего. Вы должны ожидать этого исключения, и когда вы его получите, просто вернитесь из вашей функции или завершите программу.

def process_input():
    p = input()
    while True:
        try:
            line = input()
        except EOFError:
            return
        a = line.find(p)             
        if a != -1:
            print(line)
        if line=='':
            return
Комментарии (1)