EOFError:行を読むときにEOF?
基本的には、ある行に特定のパターンが現れるかどうかをチェックしなければならない。もしそうなら、その行を表示しなければならない。これが私のコードだ:
p = input()
while 1:
line = input()
a=line.find(p)
if a!=-1:
print(line)
if line=='':
break
このコードは正しい答えとして受け入れられています。しかし、引っ掛かりがあります。ランタイムエラーEOFError:EOFError:EOFというランタイムエラーが発生します。
質問が3つあります:
- なぜ見落とされるのか?
- どうすればこのエラーを取り除けますか?
- 問題を解決する良い方法はありますか?
4
1
何も見落としはない。ドキュメント]1 にあるように、
input
はファイル終了条件にぶつかると EOFError を発生させる。基本的に、input
は、これ以上読むものがないことを知らせる。この例外が発生するのを待ち、例外が発生したら関数から戻るか、プログラムを終了する。