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

EOF Error occurs when trying to give a user input

提问人:Dalalama231123 提问时间:11/2/2022 更新时间:11/2/2022 访问量:16919

问:

我正在学习python,test.py 有以下代码:

string = input()
print(string)

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

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

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

python 输入 eof

评论


答:

3赞 CobraCabbe 11/2/2022 #1

你一定有问题,IDE刚刚尝试了你的代码,它的工作方式就像它应该的那样。您使用什么程序进行编码 (IDE)?

2赞 poiboi 11/2/2022 #2

运行代码时似乎有异常。 是“End-of-Line Error”的缩写。当 Python 到达用户输入末尾而未收到任何输入时,会发生此错误。EOFErrorEOFError

发生这种情况的原因是,当没有给出数据时,Python 会尝试打印出变量中的输入。EOFErrorstring

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

  • 窗户: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 而不是整数)。以数据类型命名它对于非常短期的使用是可以的,但 AFAIK 在任何编码语言中都不是传统的。

(我对 StackOverflow 的第一个答案......

官方文档:EOFError

评论

0赞 Dalalama231123 11/2/2022
谢谢。我在“不调试的情况下运行”下的 VS Code 上的代码。我不按任何键。我想要的是它要求我输入一个变量,然后打印它。
0赞 poiboi 11/2/2022
@Dalalama231123 在您的情况下,您的程序确实要求您输入一种输入形式。它没有任何消息的原因是,当您希望问题出现在 Python 中时,您必须手动添加问题。这可以通过将字符串传递到输入函数中来完成。当你运行你的程序时,问题应该会出现,它看起来像是在问你一个问题!示例: string = input(“say something”);print(字符串)