加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何在读取行时删除EOFError:EOF?

发布时间:2020-12-20 12:12:15 所属栏目:Python 来源:网络整理
导读:基本上,我必须检查特定模式是否出现在一行中.如果是,我必须打印该行,否则不打印.所以这是我的代码: p = input() while 1: line = input() a=line.find(p) if a!=-1: print(line) if line=='': break 这段代码似乎很好,并被接受为正确的答案.但是有一个问题.
基本上,我必须检查特定模式是否出现在一行中.如果是,我必须打印该行,否则不打印.所以这是我的代码:

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

这段代码似乎很好,并被接受为正确的答案.但是有一个问题.我在读取代码测试网站忽略的一行时遇到运行时错误EOFError:EOF.

我有三个问题:
1)为什么被忽视?
2)如何删除它?
3)有没有更好的方法来解决问题?

解决方法

没有什么是被忽视的.根据 documentation输入,当它达到文件结束条件时会引发EOFError.从本质上讲,输入让你知道我们在这里完成了没有什么可读的.您应该等待此异常,当您获得它时,只需从您的函数返回或终止该程序.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读