📜  Python中的NZEC错误

📅  最后修改于: 2020-04-08 09:46:28             🧑  作者: Mango

在各种竞争性网站上进行编码时,许多人一定遇到NZEC错误。顾名思义,NZEC(非零退出代码)发生在您的代码未能返回0时。当代码返回0时,表示它已成功执行,否则将根据错误类型返回其他一些数字。
当程序结束并且应该返回“ 0″以指示是否完成并且不能这样做时,它会导致NZEC。当然,还有更多与NZEC相关的案例。

为何发生NZEC?(一个例子)
在Python中,通常多个输入之间用逗号分隔,我们使用input()或int(input())进行读取,但是大多数在线编码平台在测试时都会以空格分隔输入,在这种情况下,输入为int(input())无法正确读取输入,并显示错误,例如NZEC。

怎么解决?

例如,考虑一个简单的程序,您必须读取2个整数并将其打印(在输入文件中,两个整数都在同一行中)。假设您有两个整数,如下所示:
23 45
不使用

n = int(input())
k = int(input())

应使用:

n, k = raw_input().split(" ")
n = int(n)
k = int(k)

用空格分隔输入。

错误代码

 

n = int(input())
k = int(input())
print n," ",k

输入:

2 3

当您使用上面的输入在IDE中运行以上代码时,您将得到错误:

Traceback (most recent call last):
  File "b712edd81d4a972de2a9189fac8a83ed.py", line 1, in
    n = int(input())
  File "", line 1
    2 3
      ^
SyntaxError: unexpected EOF while parsing

当输入在2条不同的2行中时,上面的代码可以正常工作。要解决此问题,您需要使用split。

正确的代码

 

n, k = raw_input().split(" ")
n = int(n)
k = int(k)
print n," ",k

输入:

7 3

输出:

7 3

NZEC错误的一些突出原因

  1. 无限递归或堆栈内存不足。
  2. 输入和输出均与测试用例不完全相同。
  3. 作为在线平台,请使用与您的输出与指定输出完全匹配的计算机代码测试程序。
  4. 当您的程序执行基本的编程错误(例如除以0)时,也会显示此类错误。
  5. 检查变量的值,它们很容易受到整数流的影响。

NZEC错误也可能有其他原因,本文列出了一些常见原因。