为什么调用raw_input会出现EOFError?

1 投票
1 回答
7660 浏览
提问于 2025-04-18 02:47

我在网上的一个解释器上运行了这段代码:

print "How old are you?",
age = raw_input()
print "How tall are you?",
height = raw_input()
print "How much do you weigh?",
weight = raw_input()
print "So, you're %r old, %r tall and %r heavy." % (
    age, height, weight)

我在第二行遇到了一个EOFError错误。这个错误为什么会出现,我该怎么解决呢?

1 个回答

4

问题在于,在线解释器通常不会暂停让用户输入内容。相反,它们会使用一个固定的“文件”作为 stdin,从这个文件中读取数据。除非你特别指定,否则这个文件是空的,所以当你请求输入时,就会出现EOF(文件结束),因为这个(空的)文件已经没有内容了。

不过,你是可以指定输入数据的。在ideone上,你需要点击 stdin 按钮,然后一次性输入数据。例如:

old
tall
weight

这样你的脚本 就能运行了。

但你真的应该考虑自己下载Python,然后在命令行中用普通的解释器运行。这样你就能真正体验到交互式的操作了。

撰写回答