gpt4 book ai didi

Python3读取未知多行输入的最佳方式

转载 作者:太空狗 更新时间:2023-10-30 00:58:57 26 4
gpt4 key购买 nike

当输入量未知时,Python 3 中读取多行用户输入的最佳方式是什么?多行输入会用回车分隔

当我尝试使用

while True:
line = input()
if line:
print(line)
else:
break

我收到一个 EOFError

然后如果我把它改成try-catch block

while True:
line = input()
try:
print(line)
except EOFError:
break

我仍然收到 EOFError。

最佳答案

EOFError 发生在您调用 input() 时,而不是在您测试它时,也不是在您打印它时。所以这意味着您应该input()放在try子句中:

try:
line = input()
print(line)
except EOFError:
break

也就是说,如果 input 从标准输入 channel 读取,您可以将它用作可迭代对象:

import sys

for line in sys.stdin:
print(line, end='')

由于现在每一行 line 都以换行符 '\n' 结束,我们可以在 中使用 end='' >print 函数,以防止打印新行两次(一次来自字符串,一次来自 print 函数)。

我认为最后一个版本更优雅,因为它几乎在语法上说你迭代 stdin 并单独处理行。

关于Python3读取未知多行输入的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46592445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com