我想读多行输入。输入格式是第一行包含int为no。行后跟字符串行。我试过用
while True:
line = (raw_input().strip())
if not line: break
elif line.isdigit(): continue
else:
print line
它打印字符串行但显示运行时错误消息
Traceback (most recent call last):
File "prog.py", line 2, in <module>
line = (raw_input().strip())
EOFError: EOF when reading a line
阅读输入是否正确?
为什么运行时错误?
我是python的新手请帮帮我
答案 0 :(得分:6)
如果使用EOF(Linux中的 Ctrl-d ,Windows中的 Ctrl-z )终止程序,则可能会收到EOFError。 您可以通过以下方式捕获错误:
while True:
try:
line = (raw_input().strip())
except EOFError:
break
if not line: break
答案 1 :(得分:1)
您可以执行以下操作:
while True:
try:
number_of_lines = int(raw_input("Enter Number of lines: ").strip())
except ValueError, ex:
print "Integer value for number of line"
continue
except EOFError, ex:
print "Integer value for number of line"
continue
lines = []
for x in range(number_of_lines):
lines.append(raw_input("Line: ").strip())
break
print lines
这将照顾正确的输入