编程意味着向计算机发出如何执行任务的指令。这些指令是使用编程语言编写的。这些指令的有序序列称为脚本。
作为程序员,你的主要工作是编写脚本(即程序)。但是,你还需要知道脚本如何结束。在本文中,我们将介绍 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!
发表评论 取消回复