📜  Python的NZEC错误

📅  最后修改于: 2021-06-25 20:34:17             🧑  作者: 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错误也可能有其他原因,我列出了一些常见原因。

如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。