如何解决EOFError:读取行时出现EOF?

时间:2019-04-09 12:10:23

标签: python

代码:-

input_var=input("please enter the value")
print(input_var)

错误:- 输入一个值

  

运行时异常   追溯(最近一次通话):     文件“ file.py”,第3行,在       n = input(“输入值”)   EOFError:读取行时出现EOF

我已经开始学习Python,并尝试运行此简单的输入和打印语句。但是它给了我上面的错误。我尝试在在线python编译器上运行它,并且运行正常,但是在学习门户网站提供的编译器上运行时,出现上述错误。

1 个答案:

答案 0 :(得分:0)

  

我尝试在在线python编译器上运行它,并且运行正常,但是在学习门户网站提供的编译器上运行时,出现上述错误。

input仅从“标准输入”流中读取一行。如果学习门户网站删除了对其的访问权限(将其关闭或将其设置为不可读的流),则input将在尝试从流中读取时立即得到一个错误。

这只是意味着您不能在该平台上的任何东西上使用stdin,因此,没有input(),没有sys.stdin.read(),……(因此,解决方案是“不要那样做”,这是非常具体的禁止)

在这种特定情况下,学习平台会提供非可读流,例如stdin。 / dev / null:

# test.py
input("test")
> python3 test.py </dev/null
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    input("test")
EOFError: EOF when reading a line

如果stdin已关闭 ,您会得到一个略有不同的错误:

> python3 test.py <&-
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    input("test")
RuntimeError: input(): lost sys.stdin