原始输入多行字符串时出现python运行时错误

时间:2013-02-01 10:59:47

标签: python input

我想读多行输入。输入格式是第一行包含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的新手请帮帮我

2 个答案:

答案 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

这将照顾正确的输入