尝试向用户输入时发生 EOF 错误

问题描述 投票:0回答:2

我正在学习Python,并且在test.py中有以下代码:

string = input()
print(string)

与教程相反,它给了我一个错误:

    string = input()
EOFError: EOF when reading a line

我不知道我在这里做错了什么!任何帮助表示赞赏!

python input eof
2个回答
2
投票

运行代码时似乎出现

EOFError
异常。
EOFError
是“行尾错误”的缩写。当 Python 到达用户输入末尾而没有接收到任何输入时,会发生此错误。

出现

EOFError
的原因是,当没有给出数据时,Python 会尝试打印出变量
string
中的输入。

通常,当您按 Enter 键作为输入时,不应弹出此错误,因为它将变量注册为代码中的字符串。可以通过以下按键手动触发:

  • Windows:
    Ctrl + Z
    ->
    Enter
  • macOS/Linux:
    Ctrl + D
    ->
    Enter

我建议使用相同的代码重新运行您的程序,因为不太可能出现

EOFError
。当程序需要输入时尽量避免使用上述按键,这样就不会出现错误。

如果您不想在程序中看到错误,请尝试处理错误并执行其他操作,例如打印字符串。如果发生 EOFError 异常,我输入的代码块将打印“没有数据提供给输入函数”。

try:
     string = input()
     print(string)
except EOFError:
     print("no data provided to input function")

如果您是初学者,那么在开始使用 Python 时将不需要此代码片段。仅供友好提示,您应该命名与其用途相关的变量(例如:将两个数字的和命名为 sum1 而不是整数)。对于短期使用来说,以其数据类型命名是可以的,但据我所知,在任何编码语言中都不常见。

(我对 StackOverflow 的第一个回答...)

官方文档:EOFError


0
投票

''' 检查从 readline() 获得的内容以及它是否为空,避免 EOF 错误 通过检查内容 ''' 文件1 = 打开(“some_file”,“r”) 帕克兹卡 = 1 而帕克兹卡: paczka= file1.readline() paczka= paqote.replace(',', ' ').split() 如果 paczka!= []: # 最后一个元素将是 []

© www.soinside.com 2019 - 2024. All rights reserved.