获取python的NZEC错误:

时间:2017-03-04 15:31:07

标签: python runtime runtime-error

我是python的新手,一周前开始学习语言试图在codechef中测试它...

以下是问题链接:https://www.codechef.com/problems/COOMILK

因此,据我所知,到目前为止我输入了以下代码..

t=int(input())
f=[]
if(t >= 1 and t <= 50):
  for each in range(t):
    n=int(input())
    if(n >= 1 and n <=50):
      m=input().split()
      for i in range(len(m)):
        if(m[i]=='milk'):
          q=1
        elif(len(m)==1 and m[0]=='cookie'):
          q=0
          break
        elif(m[i]=='cookie' and m[i+1]!='milk'):
          q=0
          break
      f.append(q)
  for i in f:
    if(i==1):
      print("YES")
    elif(i==0):
      print("NO")

除了在输入期间未检查n约束之外,实际显示的是运行时错误。 对此有新的解释清楚为什么我会收到nzec错误? 我自己编译了它并且对于所有测试用例它都正常工作但是没有在代码厨师上编译..任何帮助都将不胜感激。

我从网上收集到的是我目前正在使用的python 3.x中没有raw_input,所以这里只是一个友好的提醒....

2 个答案:

答案 0 :(得分:1)

NZEC代表“非零退出代码”。当遇到运行时错误时通常会发生索引超出绑定错误。

代码的第14行有一个错误:

elif (m[i]=='cookie' and m[i+1]!='milk'):

如果i + 1超出范围怎么办? 例如。, 考虑输入为:

1

3

饼干牛奶饼干

  • 1是测试用例的数量。
  • 3是中的元素数量 名单。
  • 'cookie milk cookie'组成了列表元素。

当i的值为2并且你的代码的第14行执行时,它将生成索引超出范围的错误(因为m [i + 1]即m [3]不存在!)这是一个运行时错误的类型,从而生成NZEC错误。

在代码的第7行之后添加此代码:

if m[-1]=='cookie':
    f.append(0)
    continue

答案 1 :(得分:0)

你可以尝试使用

try:
  #working code
except Exception:
   pass

尝试捕获 Java 代码的异常。