编程意味着向计算机发出如何执行一项任务的指令。这些指令是用一种编程语言编写的。
作为一名程序员,你的主要工作是编写脚本(即程序)。然而,你也需要知道脚本如何结束。在这篇文章中,我们将介绍 Python 脚本的不同结束方式。
如果你是编程新手或者打算开始学习编程,Python是开始你的编程冒险的最好方式。它是一种简单而直观的语言,而且代码和普通英语一样容易理解。
脚本是为了执行一项任务而编写的;它们应该在任务完成后结束。如果一个脚本永远不会结束,我们就有一个严重的问题。例如,如果脚本中有一个无限的while循环,理论上代码永远不会结束,并且可能需要外部中断。
需要注意的是,一个无限的while循环可能是故意创建的。一个脚本可以被写成创建一个应该永远运行的服务。在这种情况下,无限循环是故意的,这没有问题。
Python 脚本的结束可能是令人沮丧的,也可能是令人满意的,这取决于结果。如果脚本完成了它应该做的事情,那么它就很好。
5种结束Python脚本的方法
让我们从最常见和最明显的情况开始:当没有更多的行可以执行时,脚本就结束了。所有的行都被执行了
下面是一个简单的脚本,它打印了列表中的名字以及它们所包含的字符数:
mylist = ["Jane", "John", "Ashley", "Matt"]
for name in mylist:
print(name, len(name))
输出:
Jane 4John 4Ashley 6Matt 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 4The length of John is 4
Traceback (最近一次调用): File "", line 4, in TypeError: object of type 'int' has no 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! "
输出:
Jane的长度是4John的长度是42没有长度!Max的长度是3
这个try-except块做了什么?
它打印了包括值和它们的长度的f-string。如果try块中的执行返回一个TypeError,它将被except块捕获,脚本继续执行。这个案例是我们在第一节中解释的一个例子。
3. sys.exit()
sys 模块是 Python 标准库的一部分。它提供了系统特定的参数和函数。
sys 模块中的一个函数是 exit,它只是退出 Python。尽管退出的行为是一样的,但输出可能会因环境的不同而略有不同。例如,在 PyCharm IDE 中执行以下代码块:
import sysnumber = 29
if number < 30:
sys.exit()else:
print(number)
它提供了这样的输出:
Process finished with exit code 0
现在,让我们在Jupyter Notebook中运行同样的代码:
import sysnumber = 29
if number < 30:
sys. exit()
else:
print(number)
下面是输出结果:
发生了一个异常,使用%tb查看完整的回溯。SystemExit
sys.exit函数接受一个可选参数,可用于输出一个错误信息。默认值是0,表示成功终止;任何非零值都是异常终止。
我们也可以传递一个非整数对象作为可选参数:
import sysnumber = 29
if number < 30:
sys.exit("The number is less than 30.")
else:
print(number)
输出:
发生了一个异常,使用%tb查看完整回溯。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()
Output
0123Process finished with exit code 0
注意: exit() 函数也会引发一个异常,但它不会被拦截 (不像 sys.exit())。因此,在生产代码中最好使用 sys.exit() 函数来终止 Python 脚本。
5. 外部中断
另一种终止 Python 脚本的方法是使用键盘手动中断它。Windows 上的 Ctrl + C 可以用来终止 Python 脚本,Unix 上的 Ctrl + Z 将暂停 (冻结) Python 脚本的执行。
如果你在控制台中运行脚本时按下 CTRL + C,脚本将结束并引发一个异常。
Traceback (最近一次调用)。 File "", line 2, in KeyboardInterrupt
我们可以在脚本中实现一个 try-except 块,在出现 KeyboardInterrupt 异常时进行系统退出。考虑一下下面的脚本,它打印了给定范围内的整数。
for i in range(1000000):
print(i)
我们可能想在脚本运行时通过使用 Ctrl + C 来退出 Python。下面的代码块捕获了 KeyboardInterrupt 异常并执行了系统退出。
for i in range(1000000):
try:
print(i)
except Keyboard
Interrupt:
print("Program terminated manually!") raise SystemExit
Output:
Program terminated manually! Process finished with exit code 0
我们已经介绍了 5 种不同的 Python 脚本结束方式。它们都很简单,容易实现。
Python是最受欢迎的编程语言之一。通过我们对初学者友好的Python学习编程轨道开始你的Python之旅。它由5个互动的Python课程组成,复杂性逐渐增加。此外,它都是互动的;我们的在线控制台让你立即测试你所学的一切。这是一种很好的练习方式,它使学习变得更加有趣。
更重要的是,你不需要在你的电脑上安装或设置任何东西。你只需要愿意学习;我们会处理其余的事情。不要再等了,今天就开始学习Python吧!