【问题标题】:EOF error python 3EOF错误python 3
【发布时间】:2017-11-09 16:18:12
【问题描述】:
def reverse_number(x):
    return x[::-1]


number_of_sums = int(input())

for i in range(number_of_sums):
    s1 = input().split()
    print(int(reverse_number(s1[0])) + int(reverse_number(s1[1])))

我有以下代码,应该是解决 SPOJ 问题的方法。它可以很好地编译并适用于我提供的示例,但是一旦我提交它就说它发现了一个 EOF 错误。

它指向代码中的第 5 行,我相信我明白为什么。当我使用 input() 时,我尝试获取整行,对吗?那么,我将如何继续只获得号码?如果这当然是问题所在,那么可能是其他东西破坏了代码。

【问题讨论】:

  • @VanPeer,是的。我什至在第二段中这么说。

标签: python eof


【解决方案1】:
def reverse_number(x):
    return x[::-1]

try:
    number_of_sums = int(input())
    for i in range(number_of_sums):
        s1 = input().split()
        if len(s1) > 0:
            print(int(reverse_number(s1[0])) + int(reverse_number(s1[1])))
except ValueError:
    print("Invalid Input")

现在,如果您运行程序并提交它会抛出“无效输入”错误。除了添加try 块之外,还包括s1 的条件检查,因为如果没有给出正确的输入,您可能会遇到“索引超出范围”错误。

【讨论】:

    【解决方案2】:

    可能是检查代码的评分器/引擎正在运行 Python2,在这种情况下,您可以更改为:

    number_of_sums = int(raw_input())
    

    在提交之前(以及第 8 行的类似更改)。

    【讨论】:

    • 它说编译器是 3.4,但我相信我的编译器是 python 3.5。那会有什么不同吗?
    • 不,这不应该导致它。抱歉,我认为这可能很简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多