为什么此Python代码出现“运行时错误(NZEC)”?(SPOJ Anti blot系统)

时间:2019-05-26 15:39:39

标签: python

即使在pycharm上运行它返回0时,我仍在获取此python代码的运行时错误(NZEC)。

这是我有史以来第一个SPOJ问题,我是python和一般编码的新手。因此,请尽可能以通俗易懂的方式进行解释

link to problem:

n=int(input())
for i in range(n):
    s=input().split()
    c=0

    while c<len(s):
        if s[c].find('machula')>=0:
            err=c
        c+=2
    if err==0:
        new=str(int(s[4])-int(s[2]))
    elif err==2:
        new=str(int(s[4])-int(s[0]))
    elif err==4:
        new=str(int(s[0])+int(s[2]))

    s[err]=new
    print(s[0]+" "+s[1]+" "+s[2]+" "+s[3]+" "+s[4])

1 个答案:

答案 0 :(得分:0)

NZEC代表非零退出代码,这意味着您的程序确实以非零退出代码返回,或带有异常。

您实际上使用练习中提供的示例输入来测试您的应用程序吗?这就是示例的目的所在。如果您的程序没有为示例输入产生正确的结果,则提交解决方案没有任何意义。那肯定会失败的。

如果您的Python文件名为“ absys.py”,则应将输入内容(无任何修改)复制并粘贴到文件“ input.txt”中(例如),然后运行:< / p>

python absys.py < input.txt

如果我使用示例输入运行您的代码,则会得到Python异常:

NameError: name 'err' is not defined

解释NZEC。

还请注意您链接页面上的第一条评论:

  

如果有人遇到运行时错误,请尝试使用两个getline().....一个用于行,另一个用于字符串。

...并仔细阅读问题的输入规范

  

“每个测试用例前面都有一个空行。”

您的代码不会跳过空行,这就是导致上述错误的原因。通过简单的修复,您的应用程序将为给定的示例输入返回正确的输出。