编程意味着向计算机发出如何执行任务的指令。这些指令是使用编程语言编写的。这些指令的有序序列称为脚本。

作为程序员,你的主要工作是编写脚本(即程序)。但是,你还需要知道脚本如何结束。在本文中,我们将介绍 Python 脚本结束的不同方式。本文不需要任何先决知识,但如果你熟悉 基本的 Python 术语 .

如果你是编程新手或者打算开始学习编程,Python 是 开始编程冒险的 。它是一种简单直观的语言,代码就像简单的英语一样易于理解。

脚本是为了执行任务而编写的;它们应该在任务完成后结束。如果脚本永不结束,我们就会遇到严重的问题。例如,如果脚本中有一个无限的 while 循环,那么代码理论上永远不会结束,可能需要外部中断。

需要注意的是,可能会故意创建无限 while 循环。可以编写脚本来创建应该永远运行的服务。在这种情况下,无限循环是故意的,这没有问题。

Python 脚本的结尾可能令人沮丧,也可能令人满意,具体取决于结果。如果脚本按预期执行,那么它就很棒。另一方面,如果它以引发异常或抛出错误而结束,那么我们就不会很高兴。

结束 Python 脚本的 5 种方法

让我们从最常见和最明显的情况开始:当没有更多行需要执行时,脚本就结束。

1. 所有代码都执行了

以下是一个简单的脚本,它打印列表中的名称以及它们包含的字符数:

mylist = ["Jane", "John", "Ashley", "Matt"]

for name in mylist:
    print(name, len(name))

输出:

Jane 4
John 4
Ashley 6
Matt 4

剧本完成了任务并结束了。我们都很高兴。

Python 脚本或任何其他编程语言的脚本可以执行各种操作。在许多情况下,我们无法直观地检查结果。例如,脚本的工作可能是从数据库读取数据,执行一组转换,并将转换后的数据写入另一个数据库。

在执行一系列操作的脚本中,最好保留日志文件或在每个任务后添加打印语句。这样,我们在遇到问题时可以进行简单的调试。我们还可以检查日志文件或阅读打印语句的输出,以确保操作已成功完成。

2. 未捕获的异常

通常需要多次迭代才能编写出一个运行时不出错的脚本;第一次就正确的情况很少见。因此,脚本结束的一种常见方式是未捕获的异常;这意味着脚本中存在错误。

在编写脚本时,我们可以考虑一些可能出现的问题,并在脚本中放置 try-except 块来处理它们。这些是我们能够捕获的异常。其他的可以视为未捕获的异常。

考虑以下代码:

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")

输出:

The length of Jane is 4
The length of John is 4
Traceback (most recent call last):
  File "", line 4, inTypeError: object of type 'int' has no len()

代码打印列表中每个项目的长度。它执行起来没有问题,直到第三个项目,它是一个整数。由于我们无法将 len 函数应用于整数,因此脚本会抛出错误并结束。

我们可以通过添加 try-except 块来使脚本继续运行。

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
    try:
        print(f"The length of {i} is {len(i)}")
    except TypeError:
        print(f"{i} does not have a length!")

输出:

The length of Jane is 4
The length of John is 4
2 does not have a length!
The length of Max is 3

这个 try-except 块起什么作用?

  • 它打印包含值及其长度的 f 字符串。
  • 如果 try 块中的执行返回 TypeError,则会在 except 块中捕获该错误。
  • 脚本继续执行。

脚本仍然结束,但没有错误。此案例是我们在第一部分中解释的一个例子。

3. sys.exit()

sys 模块是 Python 标准库的一部分。它提供系统特定的参数和功能。

中的一个函数 sys exit ,它只是退出 Python。虽然退出行为相同,但输出可能会因环境而略有不同。例如,在 PyCharm IDE 中执行以下代码块:

import sys
number = 29

if number < 30:
    sys.exit()
else:
    print(number)

它提供以下输出:

Process finished with exit code 0

现在,让我们在 Jupyter Notebook 中运行相同的代码:

import sys
number = 29

if number < 30:
    sys.exit()
else:
    print(number)

输出如下:

An exception has occurred, use %tb to see the full traceback.

SystemExit

sys.exit 函数接受一个可选参数,可用于输出错误消息。默认值为 0,表示 成功终止; 任何非零值均为异常终止。

我们还可以传递非整数对象作为可选参数:

import sys
number = 29

if number < 30:
    sys.exit("The number is less than 30.")
else:
    print(number)

输出:

An exception has occurred, use %tb to see the full traceback.

SystemExit: The number is less than 30.

sys.exit() 函数引发 SystemExit 异常,因此 try-except-finally 块的最后一个子句中使用的清理函数将起作用。换句话说,我们可以捕获异常并处理必要的清理操作或任务。

4. exit() 和 quit()

exit() 函数 quit() 是 Python 内置的,用于终止脚本。它们可以互换使用。

以下脚本打印 0 到 10 范围内的整数。如果值变成 3,则退出 Python:

for i in range(10):
   print(i)
   if i == 4:
       exit()

输出

0
1
2
3

Process finished with exit code 0

注意 :该 exit() 函数也会引发异常,但不会被拦截(与不同 sys.exit() )。因此, 最好 在生产代码中使用 sys.exit() 函数 来终止 Python 脚本。

5. 外部中断

终止 Python 脚本的另一种方法是使用键盘手动中断它。Windows 上的 Ctrl + C 可用于终止 Python 脚本,而 Unix 上的 Ctrl + Z 将暂停(冻结)Python 脚本的执行。

如果在脚本在控制台中运行时按下 CTRL + C,脚本将结束并引发异常。

Traceback (most recent call last):
  File "", line 2, inKeyboardInterrupt

我们可以在脚本中实现一个 try-except 块,以便在发生异常时退出系统 KeyboardInterrupt 。考虑以下打印给定范围内的整数的脚本。

for i in range(1000000):
   print(i)

如果脚本在运行时使用 Ctrl + C 终止,我们可能想要退出 Python。以下代码块捕获异常 KeyboardInterrupt 并执行系统退出。

for i in range(1000000):
   try:
       print(i)
   except KeyboardInterrupt:
       print("Program terminated manually!")
       raise SystemExit

输出:

Program terminated manually!
Process finished with exit code 0

我们介绍了 Python 脚本结束的 5 种不同方式。它们都非常简单且易于实现。

Python 是最受欢迎的编程语言之一。通过我们适合初学者的“ 学习 Python 编程” 课程开始您的 Python 之旅。它由 5 门逐渐增加复杂度的交互式 Python 课程组成。此外,它都是交互式的;我们的在线控制台可让您立即测试所学的一切。这是一种很好的练习方式,它使学习更有趣。

此外,您无需在计算机上安装或设置任何东西。您只需要愿意学习;我们会处理其余的事情。别再等了——今天就开始学习 Python!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部