【问题标题】:Runtime Error(NZEC) Error in Python CodePython 代码中的运行时错误(NZEC)错误
【发布时间】:2017-07-13 19:29:00
【问题描述】:

下面是我在 Python3 中用于 Codechef 挑战的代码:

from itertools import groupby
counter=int(input())
arg=[]
p=[]
for i in range(int(counter)):
    arg.append(input())
num=0
while (num<counter):
    x=arg[num]
    l=x.replace('=','')
    groups=groupby(y)
    result = [(label, sum(1 for _ in group)) for label, group in groups]
    for i in range(0,len(result)):
        p.append(result[i][1])
    print (max(p)+1)
    p=[]
    num+=1

我遇到了八个测试用例中的四个的运行时错误 (NZEC)。 我已经检查了https://discuss.codechef.com/questions/7593/why-do-i-get-an-nzec,but 找不到此问题的解决方案。任何帮助都会很棒。提前致谢。

编辑1: 我修复了 Traceback,它仍然在四分之二的情况下提供 NZEC。代码是:

from itertools import groupby
counter=int(input())
arg=[]
p=[]
for i in range(int(counter)):
    arg.append(input())
num=0
while (num<counter):
    x=arg[num]
    l=x.replace('=','')
    groups=groupby(l)
    result = [(label, sum(1 for _ in group)) for label, group in groups]
    for i in range(0,len(result)):
        p.append(result[i][1])
    print (max(p)+1)
    p=[]
    num+=1

问题说第一行包含测试用例的数量。以下每一行都包含我一个一个作为输入的每个测试用例,如问题中所述。仍然给出相同的错误。问题是我在 Codechef 中使用 Python 作为语言时经常遇到 NZEC 错误。

【问题讨论】:

  • 代码应该做什么?它是哪个“Codechef”挑战?什么是挑战问题陈述?请提供一些关于如何为程序提供输入以及这些输入应该是什么的上下文......当我运行代码时,我只会看到用户输入的提示。如何让它给出"znec" 错误?
  • 对不起,这将提供一些上下文:codechef.com/JULY17/problems/CHEFSIGN
  • 不用担心,感谢您提供问题陈述的链接。哪些输入会导致非零退出代码?当我运行脚本时,我得到Traceback (most recent call last): File "script.py", line 11, in &lt;module&gt; groups=groupby(y) NameError: name 'y' is not defined
  • 对于每个测试用例,你输入了多少行?问题陈述显示每个测试用例应该只包含在 one 输入行中,但是您的代码似乎一次将每个字符输入一行。我不确定这是否与您遇到的 ZNEC 错误有关,但如果测试引擎在 一个 行中提供所有输入,它可能会阻止您的代码通过测试用例。跨度>
  • 问题说每个测试用例将包含一行,因此测试用例应该出现在它们自己的行中。即使这是问题所在,它不应该在每个测试中给出一个 NZEC输入而不是选定的几个?

标签: python python-3.x runtime-error


【解决方案1】:

除了 BCZ CODECHEF USE 文件作为我在我的代码中所做的输入之外,将所有代码都放入尝试中,并且它的工作原理

    from itertools import groupby
    try:
        counter=int(input())
        arg=[]
        p=[]
        for i in range(int(counter)):
            arg.append(input())
        num=0
        while (num<counter):
            x=arg[num]
            l=x.replace('=','')
            groups=groupby(y)
            result = [(label, sum(1 for _ in group)) for label, group in groups]
            for i in range(0,len(result)):
                p.append(result[i][1])
            print (max(p)+1)
            p=[]
            num+=1
    except:
        pass

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多