原文: Run Python Script – How to Execute Python Shell Commands in the Terminal

当你开始学习一种新的编程语言时,你的第一个程序可能是一个打印 “hello world!” 的程序。

假设你想在 Python 中这样做,有两种方法:使用 Python shell 或者把它写成一个脚本并在终端运行。

Shell 是什么

一个操作系统是由一堆程序组成的。它们执行文件处理、内存管理和资源管理等任务,并帮助你的应用程序顺利运行。

我们在计算机上做的所有工作,如在 Excel 中分析数据或玩游戏,都是在操作系统中完成的。

操作系统程序有两种类型,叫作 shellkernel 程序。

kernel  程序是执行实际任务的程序,如创建文件或发送中断。shell 的功能是接受输入并决定和执行所需的 kernel 程序来完成工作并显示输出。

shell 也被称为命令处理器

终端是什么

终端是与 shell 交互的程序,允许我们通过基于文本的命令与它交流。这就是为什么它也被称为命令行。

要在 Windows 上访问终端,点击 Windows 标志 + R,输入 cmd,然后按回车键。

要在 Ubuntu 上访问终端,按 Ctrl + Alt + T。

Python Shell 是什么

Python 是一种解释型语言。这意味着 Python 解释器读取一行代码,执行这一行,然后在没有错误的情况下重复这个过程。

Python shell 给你提供了一个命令行界面,你可以用它以交互的方式直接向 Python 解释器指定命令。

你可以在官方文档中得到很多关于 Python shell 的详细信息。

如何使用 Python Shell

要启动 Python shell,只需在终端输入 python 并点击回车键:

C:\Users\Suchandra Datta>python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>print("hello world!")


交互式 shell 也被称为 REPL,代表读取、评估、打印、循环。它将读取每条命令,评估并执行它,打印该命令的输出(如果有的话),并不断重复这个过程,直到你退出 shell。

有不同的方法来退出 shell:

  • 你可以在 Windows 上按 Ctrl+Z 或在 Unix 系统上按 Ctrl+D 来退出
  • 使用 exit() 命令
  • 使用 quit() 命令
C:\Users\Suchandra Datta>python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("HELLO WORLD")
HELLO WORLD
>>> quit()

C:\Users\Suchandra Datta>
C:\Users\Suchandra Datta>python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

C:\Users\Suchandra Datta>
C:\Users\Suchandra Datta>python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z


C:\Users\Suchandra Datta>

你在 Python Shell 中可以做什么

你可以做 Python 语言允许的几乎所有事情,从使用变量、循环和条件到定义函数等等。

>>> 是 shell 的提示符,你在这里输入你的命令。如果你有跨越几行的命令——例如当你定义循环时——shell 会打印出 ... 字符,表示一行在继续。

让我们看一个例子:

>>>
>>> watch_list = ["stranger_things_s1", "stranger_things_s2", "stranger_things_s3","stranger_things_s4"]
>>>
>>>

这里我们通过 Python shell 定义了一个带有一些电视节目名称的列表。

接下来,让我们定义一个函数,接受一个节目列表,并随机返回一个节目:

>>> def weekend_party(show_list):
...     r = random.randint(0, len(show_list)-1)
...     return show_list[r]
...

注意这里的 Python shell 的延续行(...)。

最后要从 shell 中调用函数,你只需像在脚本中那样调用该函数:

>>> weekend_party(watch_list)
'stranger_things_s1'
>>>
>>>
>>> weekend_party(watch_list)
'stranger_things_s3'
>>>
>>>
>>> weekend_party(watch_list)
'stranger_things_s2'
>>>
>>>
>>> weekend_party(watch_list)
'stranger_things_s2'
>>>
>>>
>>> weekend_party(watch_list)
'stranger_things_s3'
>>>

你可以从 shell 中检查 Python 模块,如下图所示:

>>>
>>>
>>> import numpy
>>> numpy.__version__
'1.20.1'
>>>

你可以通过使用 dir() 方法查看一个模块提供了哪些方法和属性:

>>>
>>> x = dir(numpy)
>>> len(x)
606
>>> x[0:3]
['ALLOW_THREADS', 'AxisError', 'BUFSIZE']

这里你可以看到 Numpy 总共有 606 个方法和属性。

如何运行 Python 脚本

Python shell 对于执行简单的程序或调试复杂程序的部分是很有用的。

但是真正复杂的大型 Python 程序是写在以 .py 为扩展名的文件中的,通常称为 Python 脚本。然后你从终端使用 Python 命令来执行它们。

通常的语法是:

python filename.py

我们之前通过 shell 执行的所有命令,我们也可以把它写在一个脚本中,并以这种方式运行。

总结

在这篇文章中,我们学习了 shell、终端,如何使用 Python shell。我们还看到了如何从命令行运行 Python 脚本。

我希望这篇文章能够帮助你理解什么是 Python shell,以及你如何在日常生活中使用它。祝你学习愉快!