Maz*_*one 5 python user-input input eof python-3.x
当输入量未知时,Python 3中读取多行用户输入的最佳方法是什么?多行输入将由Enter分隔
当我尝试使用
while True:
line = input()
if line:
print(line)
else:
break
Run Code Online (Sandbox Code Playgroud)
我收到一个EOFError
然后,如果我将其更改为try-catch块
while True:
line = input()
try:
print(line)
except EOFError:
break
Run Code Online (Sandbox Code Playgroud)
我仍然收到EOFError。
在EOFError当你打电话时input(),不是当你测试它,也不当你打印出来。因此,这意味着您应该放入input()一个try子句:
try:
line = input()
print(line)
except EOFError:
breakRun Code Online (Sandbox Code Playgroud)
话虽如此,如果input从标准输入通道读取数据,则可以将其用作可迭代对象:
import sys
for line in sys.stdin:
print(line, end='')
Run Code Online (Sandbox Code Playgroud)
由于line现在每个行都以换行符结尾,因此'\n'我们可以end=''在print函数中使用,以防止两次打印新行(一次从字符串开始,一次从print函数开始)。
我认为最后一个版本更优雅,因为它在语法上几乎说您要遍历stdin和分别处理行。
| 归档时间: |
|
| 查看次数: |
1079 次 |
| 最近记录: |