Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中出口(0)和出口(1)之间的区别_Python_Exit Code - Fatal编程技术网

Python中出口(0)和出口(1)之间的区别

Python中出口(0)和出口(1)之间的区别,python,exit-code,Python,Exit Code,Python中的exit(0)和exit(1)有什么区别 我试着四处看了看,但在这些方面没有找到具体的问题。如果已经应答,链接就足够了。0和1是退出代码 退出(0)意味着没有任何错误/问题的干净退出 exit(1)表示出现了一些问题/错误/问题,这就是程序退出的原因 这不是特定于Python的,而且非常常见。非零退出代码被视为异常退出,有时,错误代码指示问题所在。零错误代码表示成功退出 这对于其他程序、shell、调用者等了解您的程序发生了什么并进行相应的处理非常有用。这决定了程序运行结束时的性

Python中的
exit(0)
exit(1)
有什么区别


我试着四处看了看,但在这些方面没有找到具体的问题。如果已经应答,链接就足够了。

0和1是退出代码

退出(0)
意味着没有任何错误/问题的干净退出

exit(1)
表示出现了一些问题/错误/问题,这就是程序退出的原因

这不是特定于Python的,而且非常常见。非零退出代码被视为异常退出,有时,错误代码指示问题所在。零错误代码表示成功退出

这对于其他程序、shell、调用者等了解您的程序发生了什么并进行相应的处理非常有用。

这决定了程序运行结束时的性能(通常,0表示成功,1表示错误)


它不是Python独有的,确切的效果取决于您的操作系统和调用程序的方式(尽管99%的时间,如果您只是运行Python脚本,这并不重要)。所有C程序(包括Python)的标准约定是
exit(0)
表示成功,而
exit(1)
或任何其他非零值(范围为1..255)表示故障。范围0..255之外的任何值均按256模处理(退出状态存储在8位值中)。有时,它会被视为有符号的(所以您可能会看到-128、-127等等),但更常见的是,它被视为无符号的


此状态可用于调用Python的代码。此约定适用于不同的平台,尽管非零退出状态的含义在不同的平台上可能有所不同。

传递给
exit()
函数的数字只是程序的返回代码,它是给操作系统的。从程序的角度来看,没有区别:在这两种情况下执行都将结束,提供给函数的值将被赋予操作系统。但是一些工具和脚本考虑了程序的退出代码。大多数工具在成功时返回0,非零表示错误

因此,如果您的程序将从脚本、自动化工具或考虑返回代码的其他软件(如IDE)运行,则必须小心返回的内容

当有疑问时,只需返回0表示一切正常。

退出(0):这会导致程序退出并成功终止

退出(1)
:这会导致程序以特定于系统的含义退出

在许多系统上,
exit(1)
表示某种故障,但是 这不是保证

我记得,C标准只识别三个标准出口 价值观:

  • 退出\u成功
    ——成功终止
  • 退出\u失败
    ——终止不成功
  • 0
    ——与
    EXIT\u SUCCESS

那么exit(-1)呢?@Faizan:在Unix上,exit代码是一个8位的值。如果调用
exit(-1)
,该值相当于
exit(255)
——最低有效8位中继到调用程序(shell或其他)。请注意,根据,
exit()
站点
模块添加,程序不应使用。如果您不想导入另一个模块,请使用
sys.exit()
,甚至使用
raise SystemExit
。由于Unix/Linux的退出代码,我认为在Python条件下0是真值,1是假值。任何非零值都被shell等视为“异常终止”。大多数系统要求它在0到127之间,否则会产生未定义的结果。一些系统有一个为特定出口代码指定特定含义的惯例,但这些系统通常还不发达;Unix程序。。。命令行语法错误使用2,所有其他错误使用1。如果传递了另一种类型的对象,则“无”等同于传递零,任何其他对象都将打印到stderr,并导致退出代码为1。这里有一个指向的链接,我花了很长时间才找到。请记住:,相反,请使用刚才意识到的问题中讨论过的
退出(0)
,还有一个带有下划线的
\u退出(0)
,不同之处在于,这些代码的优点在于它们可以直接用于
bash
包装器中的
if
语句中,因此无论Python程序是否成功或是否引发非零状态,都可以采取进一步的措施。奇怪的是,如果Python中0为False,1为True,你会认为这些数字的意思正好相反