Python 中的 NZEC 错误


很多人一定遇到过 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)

用空格分隔输入。

错误代码

  • Python
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

当输入位于两个不同的行时,上面的代码将正常工作。你可以自己测试一下。为了解决这个问题,你需要使用 split。

正确的代码

  • Python
n,k=input().split()
n = int(n)
k = int(k)
print(n," ",k)

输入:

7 3

输出:

7 3

NZEC 错误的一些重要原因

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


原文链接:codingdict.net