【问题标题】:EOF Error in Python 2Python 2 中的 EOF 错误
【发布时间】:2013-08-09 03:06:12
【问题描述】:

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

编译器报错

Traceback(最近一次调用最后一次): 文件“/run-Lx3mHJ3G2jHRLRW9bjbX/solution.py”,第 4 行,在 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())”和其他可能的变体。

【问题讨论】:

    标签: python-2.7 runtime-error


    【解决方案1】:

    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))
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2017-01-18
      • 2011-11-26
      相关资源
      最近更新 更多