Python 2中的EOF错误

时间:2013-08-09 03:06:13

标签: python-2.7 runtime-error

我正在使用Python 2解决http://hackerrank.com上的问题

编译器发出错误

  

追踪(最近一次通话):     文件“/run-Lx3mHJ3G2jHRLRW9bjbX/solution.py”,第4行,in       t = raw_input()   EOFError:读取行时的EOF

这是代码:

import sys
a = []
while 1:
    t = raw_input()
    if t=="":
        break
    else:
        s = [i for i in t]
        s.reverse()
        a.append(s)

a.reverse()
for i in a:
    for j in i:
        sys.stdout.write(j)
    sys.stdout.write('\n')

当我在计算机上运行它时,它运行正常。

我是应该向HackerRank解释器报告还是我做错了?

为了完整的信息,我已经尝试使用“input()”,“str(input())”和其他可能的变体。

1 个答案:

答案 0 :(得分:2)

HackerRank似乎不支持重复raw_input()的python习惯用语,直到它得到一个空行。 HackerRank显然要求提交的代码使用标题部分中的测试描述参数(输入的第一行或第二行)来控制读取的行数。

尝试阅读过去的预期输入行会在我的试验中触发类似的EOFError:

...
def main():
    lines = []
    line = raw_input()
    while line:
        lines.append(line)
        line = raw_input()    # line 232
    ...

导致

Status: EOFError thrown on line 232

重写输入代码以只读取预期的行数足以使修订提交通过。例如,对于算法部分中的“服务通道”预热练习:

...
first_line = raw_input()
freeway_length, testcase_count = parse_session_controls(first_line)

second_line = raw_input()
widths = parse_widths(second_line, freeway_length)

for _unused in range(testcase_count):
    testcase_line = raw_input()
    entrance_num, exit_num = parse_testcase(testcase_line, freeway_length)
    print(measure_bottleneck(widths, entrance_num, exit_num))
...