自学Python进阶-把代码变成程序、软件

liftword4周前 (12-11)技术文章20

之前的几篇,我们一起认识了python语言(python语言里有哪些东西),见识python代码(三种核心语句程序代码里的记忆体:变量),并用python语言解决了几个著名的常见数学问题(百钱百鸡问题闰年问题)。

怎么可以让python更好地解决自己的问题呢?当然是希望能用它做出像其它软件一样的程序,成为可以直接用的工具;不仅自己能够重复使用,还可以发给别人用。现在就讲讲这方面的知识。

前面讲过,python是跨平台的语言,写出的程序可以同时在windows,macOS,linux,甚至Android或iOS手机上运行,做一定的封装处理(程序员专业的说法是:系统兼容和机型适配)就可以开发跨系统的商用软件来。

无论你在哪个操作系统下运行python写的代码、程序,首先必须装作该系统下的python安装包 - 内含python解析器及一些工具和基础库。解析器的作用就是在我们运行自己写的代码时,把python语言代码翻译成操作系能执行的功能,从而完成我们期望的工作。python也因此被归类为解释型语言。

我们学习语言阶段,或完成功能单一的工作时,可以把所有的代码放在一起 - 保存在一个文件里,然后运行它。如果要制作功能复杂的大点工具,或软件系统,则需要把代码按照一定规则保存在多个文件里,甚至还要将它们分类放到多个目录里,再按照python语言定义的规则,调度执行它们。

我们现在主要学习python语言本身,实现些单一、具体的功能,因此都把代码放在一个文件里来讲解,上一篇的自学Python进阶-闰年问题就是这样的例子。

首先运行一个python代码文件最简单的方式,就如上次例子里讲的:直接在python自带的IDE里操作,具体见 自学Python进阶-闰年问题 的末尾部分。这个也是在widnow, macOS, ubuntu等各种系统下通用的方法。

其次,如果想脱离python默认IDE环境 - 更轻便、灵活的运行,则不同操作系统下有点区别,下面就分开讲讲:

1,windows系统下,我们一般都是双击一个文件或软件来运行程序的。将python写的程序保存并让扩展名为 .py 的文件,然后就可以双击运行了,这是因为在安装python解析器时,windows操作系统已经将 .py扩展名和 python解析器关联上来,双击时会自动调用。

2,在苹果操作系统macOS和linux操作系统(如ubuntu)下的运行,则和windows不一样。首先这两个系统环境下命令行方式运行python会更灵活些,其次这些系统对它里面的文件都有个属性:决定文件是否可被当作程序直接运行。

我们以计算闰年问题的代码文件名 leapYear.py为例,如果它没有执行权限,那么我们可以通过运行python解析器,再把文件名附在后面 - 当作参数,这样来运行:

打开命令行窗口,用 cd 命令进入到leapYear.py所在目录
python  ./leapYear.py

如果有运行权限 - 这可以通过 chmod +x filename.py 给文件加上执行权限,则可以直接运行我们的代码文件:

打开命令行窗口,用 cd 命令进入到leapYear.py所在目录
chmod +x leapYear.py
./leapYear.py

仔细思考的话,会有个疑问:最后这种方法和前面的对比,操作系统怎么知道用什么来解析执行文件里我们写代码呢?这就对我们写的代码有一个特殊的要求:第一行内容指明运行本文件里下面代码所使用的解析器。python3语言代码文件的第一行写法通常如下:

#!/usr/bin/env python3

其中开头的两个字符"#!"是固定的,后面的需要根据你操作系统、安装软件的不同会有变化。如果你写的代码是其它解释型语言,通常也只是后面这部分不同。

到了这里,各种操作系统,各种环境下,我们都能让python解析器调用我们写的代码来执行命令了。但是如果要保证正常运行我们这个leapYear.py文件,还得对文件里面的代码格式有个特殊的要求,必须存在下面一样代码:

if __name__ == '__main__':

这行代码的作用就是告诉python解析器:此处是代码运行开始的地方,程序员称之为:程序运行入口。

#编程# #Python#

相关文章

Python中的super()函数:深入解析与实用技巧

在Python编程中,super()函数是一个不可或缺的工具,特别是在处理类继承时。虽然它看起来简单,但实际上super()背后隐藏了许多复杂的细节和强大的功能。本文将深入探讨super()的真正作用...

两种方法实现Excel表格数据排序(手动与自动的区别)-Python故事

带你走进 @ 机器人时代Discover 点击上面蓝色文字,关注我们Excel 是我们工作中常用的数据分析工具,对列进行数据排序,手动操作很简单,但如果我们开发自动化程序的时候也需要Python代码进...

一文速速搞懂Python的异常

人生之事,不如意者十之有九。在编程中亦是如此。异常(Exception),遍布于程序各个角落,开发工作的大部分coding,都是为了应对和解决它。概念异常,简而言之,是程序在执行期间发生的非预期的、非...

Python:pandas的DataFrame如何按指定list排序

现在有一个pandas的Series和一个python的list,想让Series按指定的list进行排序,如何实现?根据指定的list所包含元素比Dataframe中需要排序的列的元素的多或少,可以...