【发布时间】:2018-03-17 11:24:37
【问题描述】:
当输入量未知时,Python 3 中读取多行用户输入的最佳方法是什么?多行输入会用回车分隔
当我尝试使用时
while True:
line = input()
if line:
print(line)
else:
break
我收到 EOFError
如果我将其更改为 try-catch 块
while True:
line = input()
try:
print(line)
except EOFError:
break
我仍然收到 EOFError。
【问题讨论】:
-
这是合乎逻辑的,因为错误不会在打印时发生,而是在
input()。所以应该在try。 -
您是从标准输入管道输入数据吗?我从未见过调用
input时出现 EOFError,但我想这是可能的。 -
@AdamSmith:是的,如果您在大多数终端中使用
Ctrl+D,这也被视为终止标准输入。 -
骗子是目前最简洁、最聪明的答案之一。
-
@cᴏʟᴅsᴘᴇᴇᴅ 骗子没有回答问题。正如我的标题中指定的那样,我专门针对 Python 3 提出要求。欺骗是针对 Python 2
标签: python python-3.x input user-input eof