通常, 每个新手都学会先在命令行上编写Python脚本, 然后再从命令行开始执行脚本, 其中脚本通常在文本编辑器中编写并从命令行运行。
计算机无法以人类编写代码的方式理解代码, 因此, 你需要在计算机和人类编写的代码之间进行解释。解释器的工作是将代码转换为计算机可以理解和处理的格式。
解释器通过以下方式处理代码:
- 按顺序处理Python脚本
- 将代码编译为字节代码格式, 这是计算机可以理解的低级语言。
- 最后, 图片中出现了Python虚拟机(PVM)。 PVM是Python的运行时动力。这是一个循环访问低级字节码代码的指令以逐一运行它们的过程。
Python脚本以.py扩展名保存, 该扩展名通知计算机它是Python程序脚本。与Windows不同, 基于Unix的操作系统(例如Linux和Mac)带有预安装的Python。同样, 在Windows和Unix操作系统中运行Python脚本的方式也有所不同。
注意:对于所有用户, 尤其是Windows OS用户, 强烈建议你安装Anaconda, 可以从该网站下载。你可以按照本srcmini教程中给出的说明进行操作, 这些说明特定于Windows操作系统。
要在Windows操作系统上安装Python3, 请随时查看此链接。
可以通过以下方式在各种操作系统上访问Python的命令行解释器:
- 在Windows上, 命令行称为命令提示符, 可通过单击开始菜单并搜索命令提示符来访问。另一种方法是转到” 运行” 对话框, 键入cmd并按Enter(“ 开始” 菜单$-> $运行, 然后键入cmd)。之后, 如果在C盘中安装了Python, 则只需键入C:\ python36 \ python.exe, 其中python36是Python版本(注意:此路径可能会根据Python所在的目录而有所不同。配置)。
文章图片
(资源)
- 在Mac系统上, 这非常简单。你需要做的就是打开Launchpad并搜索Terminal, 然后在终端中键入Python and boom, 它将为你提供Python版本的输出。
文章图片
- 与Mac系统一样, 在Linux系统上访问终端也非常容易。右键单击桌面, 然后单击终端, 然后在终端中键入Python, 仅此而已!
文章图片
(资源)
注意:在本教程中, 你将学习使用Mac OS Terminal。
因此, 事不宜迟, 让我们开始吧!
在终端中编写Python脚本
让我们看看如何在终端本身中编码和生成输出。为此, 首先, 你将键入python3, 这意味着你将使用Python3版本。
之后, 你通常可以像在文本编辑器或IDE(集成开发环境)中一样进行编码, 尽管你不会像使用IDE那样在终端中获得功能。
【如何运行Python脚本】你将从常绿的Hello, World开始!示例, 让我们看一下输出在终端中的样子。
文章图片
仅通过打开终端并输入Python3即可在Python中进行编码, 这不是很好吗?让我们尝试更多示例。
文章图片
在上面的示例中要注意的一件事是, 即使不键入print语句, 你也可以获得输出。
让我们使代码复杂一点, 让你使用NumPy(数字Python)库创建两个数组, 并对其应用一些数学运算。为了对numpy有所了解, 它是一个Python编程库, 具有处理大型多维数组和矩阵的能力, 以及可在这些数组上运行的大量高级数学函数的集合。
文章图片
你可以从上图观察到使用numpy; 你可以在终端中创建, 添加和乘以两个numpy数组。这里要注意的一件事是, numpy中的乘法函数执行逐元素乘法, 而点函数则采用两个矩阵的点积。要完成np??.dot命令, 你需要确保第一个矩阵的列与第二个矩阵的行相等, 从而确保值错误。
从终端运行.py脚本
从终端运行Python脚本非常简单, 而不是在终端中编写Python脚本, 你所需要做的就是使用文本编辑器(如vim, emacs或notepad ++)并将其保存为.py扩展名。然后, 打开终端并转到代码所在的目录, 并使用关键字python和脚本名称运行脚本。
文章图片
要创建terminal.py文件, 请在程序名称为vim terminal.py的终端中使用vim并将以下代码粘贴到其中。要保存代码, 请按Esc键, 然后按wq!。最后, 要运行该脚本, 只需输入python3 terminal.py, 然后在不到一秒钟的时间内, 你将看到如上所示的输出。
以下是以上示例中使用的代码。
import numpy as npx = np.array([[1, 2], [3, 4]], dtype=np.float64)
y = np.array([[5, 6], [7, 8]], dtype=np.float64)# Elementwise sum;
both produce the array
# [[ 6.08.0]
#[10.0 12.0]]
print("Output of adding x and y with a '+' operator:", x + y)
print("Output of adding x and y using 'numpy.add':", np.add(x, y))# Elementwise difference;
both produce the array
# [[-4.0 -4.0]
#[-4.0 -4.0]]
print("Output of subtracting x and y with a '-' operator:", x - y)
print("Output of subtracting x and y using 'numpy.subtract':", np.subtract(x, y))# Elementwise product;
both produce the array
# [[ 5.0 12.0]
#[21.0 32.0]]
print("Output of elementwise product of x and y with a '*' operator:", x * y)
print("Output of element wise product of x and y using 'numpy.multiply':", np.multiply(x, y))# Elementwise division;
both produce the array
# [[ 0.20.33333333]
#[ 0.428571430.5]]
print("Output of elementwise division x and y with a '/' operator:", x / y)
print("Output of elementwise division x and y using 'numpy.divide':", np.divide(x, y))# Elementwise square root;
produces the array
# [[ 1.1.41421356]
#[ 1.732050812.]]
print("Output of elementwise square root x using 'numpy.sqrt':", np.sqrt(x))
Output of adding x and y with a '+' operator: [[ 6.8.]
[10. 12.]]
Output of adding x and y using 'numpy.add': [[ 6.8.]
[10. 12.]]
Output of subtracting x and y with a '-' operator: [[-4. -4.]
[-4. -4.]]
Output of subtracting x and y using 'numpy.subtract': [[-4. -4.]
[-4. -4.]]
Output of elementwise product of x and y with a '*' operator: [[ 5. 12.]
[21. 32.]]
Output of element wise product of x and y using 'numpy.multiply': [[ 5. 12.]
[21. 32.]]
Output of elementwise division x and y with a '/' operator: [[0.20.33333333]
[0.42857143 0.5]]
Output of elementwise division x and y using 'numpy.divide': [[0.20.33333333]
[0.42857143 0.5]]
Output of elementwise square root x using 'numpy.sqrt': [[1.1.41421356]
[1.73205081 2.]]
将命令行参数传递给Python脚本
命令行参数使生活变得更加轻松, 许多次在生产就绪型代码中使用了命令行参数。它使代码输出的可再现性高效。例如, 假设你的代码中有许多正在读取的用户输入或文件, 那么通过使用命令行参数, 你无需进入代码即可进行所有这些更改, 以防你需要更改文件名或变量输入。
为此, 你将使用sys模块, 它是一个内置的Python模块。在sys中, 你具有argv, 它为你提供了传递给Python程序的命令行参数列表。 sys.argv将命令行参数作为项目列表读取, 其中列表中的第一个项目/元素可以作为sys.argv [1]访问, 而第一个参数(即sys.argv [0]始终是项目名称)程序被调用。
让我们举一个简单的例子, 看看它是如何工作的。
注意:命令行参数由Python读取为字符串, 因此请确保在处理数字时将其转换为整数。
与前面的示例非常相似, 将以下代码行在编辑器中另存为command_line.py并运行代码类型python3 command_line.py 10, 其中10是命令行参数。
import sys
num = sys.argv[1]
for i in range(int(num)):
print (i)
文章图片
如果你不提供任何命令行参数怎么办? 你将获得一个超出范围的错误列表索引, 该索引还会增强sys.argv作为项目列表读取的索引。为避免此类错误, 你需要进行特殊处理, 而这超出了本教程的范围。
文章图片
将Python脚本的输出写入文件
最后, 作为奖励, 让我们看看如何使用> 键将Python脚本的输出保存在txt文件中。是的, 一个角色, 不是那么令人惊讶吗?
首先, 你将创建一个cli文件夹, 并将command_line.py代码移到cli文件夹中。然后, 你将检查该文件夹中的所有内容, 以确保不存在任何txt文件。
然后, 你将键入python3 command_line.py 10> output.txt, 最后检查cli文件夹的内容。现在, 你应该可以看到output.txt文件。
文章图片
打开并查看output.txt文件的内容。
文章图片
瞧!从上面的输出中, 你可以看到仅使用一个> 符号将0-9位数字写入了文本文件。
恭喜你完成了本教程。
还有很多探索的地方, 例如在Python中基于GUI的执行, 以交互方式运行Python脚本, 从文件管理器或IDE中运行脚本。特定于命令行执行, 你可能需要在Windows命令提示符下进行实验, 以查看它与基于Unix的操作系统有何不同。
请随时在下面的评论部分中提出与本教程相关的任何问题。
如果你刚刚开始使用Python, 并且想了解更多信息, 请参加srcmini的Python数据科学入门课程。
推荐阅读
- 电子表格的时间序列分析
- Android 8.0+ 通知不显示的适配
- android默认开启adb调试方法分析
- 禁止APP内部截屏,系统截屏都不好使
- 安卓抽屉菜单(侧滑菜单)全屏设置
- android adb 流程原理代码分析
- 安卓真机或者模拟器运行安装应用时提示 Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res
- 安卓打印长日志
- [Java]基本資料包裝類別 Wrapper Classes