Python 中结束程序的 3 种方法

快速导航

了解如何终止程序在各种情境中都至关重要且十分实用。 比如,在开发一个简单的游戏时,你可能需要在用户输入特定指令或满足特定条件时退出游戏。 因此,理解在Python中停止程序的三种不同方式之间的差异是非常有益的。

1. 利用 quit() 或 exit() 方法

结束Python程序最直接的方式之一是使用内置函数 quit()exit()。 当你调用其中任何一个函数时,程序都会立即停止运行。

实际上,quit()exit() 函数执行的操作完全一致,选择使用哪一个完全取决于个人的偏好。

以下是如何使用 quit() 函数来终止Python程序的示例:

 for num in range(10):
if num == 9:
quit()
print(num)

上述代码段会在控制台依次打印从0到8的整数。一旦变量 num 的值变为9,程序就会立即退出。 quit() 命令也可以用于退出 Python 的集成开发环境(IDLE),这允许你以交互方式执行 Python 脚本。

需要注意的是,quit()exit() 都依赖于 site 模块,因此在实际的生产环境中,不建议使用它们。 相较之下,sys.exit() 方法则是一个更可靠的选择。

2. 利用 sys.exit() 方法

当在程序中调用 sys.exit() 时,Python 会抛出一个 SystemExit 异常。此方法接受一个可选的参数,用于指定一个整数形式的退出代码(默认值为0)。你也可以传递一个非整数的对象,这会导致退出代码为1,并将其字符串值打印到标准错误输出。

 import sys 

for num in range(10):
if num == 5:
sys.exit("程序已退出")
print(num)

该程序的输出结果如下所示:

quitexit 方法类似,sys.exit() 也会引发 SystemExit 异常。这意味着你可以直接调用 sys.exit() 或抛出 SystemExit() 异常,两者都接受可选参数。

如果你对上述代码的工作原理不太理解,可能需要复习一下Python中最核心的函数概念。

3. 利用 os._exit() 方法

第三种终止程序的方法是使用特殊的 os._exit() 函数。你可以向它传递一个可选的参数,用来设定退出状态码。os._exit() 函数来自 os 模块,它会立即终止进程,并且不会执行Python程序退出时通常会发生的清理操作。

由于此函数在退出时不进行正常的清理工作,你应该只在特殊情况下才使用它。 根据Python官方文档的说明,一个恰当的例子是fork后产生的子进程(使用 os.fork() 创建的新进程)。

以下是如何使用 os._exit() 函数来结束程序的示例代码:

 import os
import sys

def child_process():
print("子进程正在运行。")
os._exit(0)

def main():
print("父进程正在运行。")

try:
pid = os.fork()

if pid == 0:

child_process()
else:

print(f"父进程继续运行,子进程的PID是: {pid}")
except OSError as e:
print(f"Fork操作失败: {e}")
sys.exit(1)

print("父进程结束。")

if __name__ == "__main__":
main()

上述代码的输出结果会如下所示:

应该选择哪种方法来终止 Python 程序?

Python 提供了多种结束程序的方法。 但是,这些方法中的大部分本质上执行的是相同的操作。 如果你在学习Python过程中需要在程序中添加退出机制,了解这些方法应该会帮助你更好地做出选择。

总而言之,在Python中,sys.exit() 应该是首选的终止程序的方法。它会引发一个带有可选退出代码的 SystemExit 异常。

quit()exit() 方法更适合在 Python 的交互式环境(REPL)中使用。 在生产环境中,你应该避免使用它们,因为它们依赖于 site 模块,而这个模块可能并非总是可用。 除非你正在处理使用分叉进程的代码,否则很少需要使用 os._exit()