Python简介和环境搭建

Python是一种应用广泛的高级编程语言,由荷兰计算机科学家Guido van Rossum于1989年开发。由于上手难度低、开发效率高等优势,Python语言目前广泛用于数据分析、科学计算、人工智能、Web开发、网络编程、自动化运维、自动化测试等多种领域。

官方主页:https://www.python.org/

Python语言的定位

Python是一种解释型语言,运行Python源代码需要Python解释器,我们可以简单理解为源代码会由Python解释器逐行翻译为系统指令并载入CPU执行。实际上,随着历史的发展,出于提高性能等目的,现在的Python源代码也会由解释器转换为中间字节码(我们可以看到执行Python代码时会生成.pyc文件)再由解释器加载执行,这和Java有些类似,不过Python并没有明确的编译步骤,因此我们仍将其分类为解释型语言。

Python还是一种强类型和动态类型语言。强类型意味着变量是有明确类型的,Python解释器会对不符合类型要求的操作进行检查并抛出错误,也不允许不兼容类型之间的隐式转换。而动态类型则意味着变量的类型在运行时决定,且Python中的一个变量可以在不同的时刻绑定不同类型的值。

Python是使用自动垃圾回收(GC)的编程语言。它使用引用计数、循环垃圾回收等机制自动管理堆内存,无需开发人员手动释放内存。

Python的优势和缺点

Python的最大优势就是上手难度低,没有什么使用门槛,使用Python开发程序不像C++那样有着极高的心智负担,开发者能使用若干行代码迅速实现自己的意图。Python的语法设计的也非常人性化,而且提供了大量的语法糖,代码美观且表现力强。此外,Python的生态也十分丰富和成熟,官方的包管理平台PyPI有大量的第三方扩展模块,我们实现很多功能其实不必自己“造轮子”,直接调用现有的库即可。

当然,Python也不是没有缺点,它最大的缺点就是历史遗留问题。Python2和Python3是Python语言的两个主要版本,Python3在语言规范上进行了较大的改进因此无法向下兼容,这也造成了Python社区在2015年前后的一段时间产生了巨大撕裂,这种版本不兼容的状况差一点毁灭了Python社区,不过好在随着时间的推移Python2的官方支持已经于2020年结束,Python3的生态也基本恢复完整了。然而,Python3版本至今仍埋着一个炸雷,它就是全局解释器锁(GIL),Python是一门古老的语言,它出现时多核CPU还未普及,因此Python为了保证并发状态下的线程安全使用了GIL,这也导致Python只能利用多核CPU的一个核心,这也意味着纯Python代码基本告别了开发计算密集型程序的可能性,GIL这个东西还不能轻易移除,因为大量的库是基于GIL存在的情况来设计的,未来如果移除GIL将再一次引发社区的割裂。

注:前面提到Python无法开发计算密集型程序,但我们知道Python在科学计算和机器学习领域仍有很多可用的库,例如矩阵运算使用的Numpy等,这是因为Numpy这类计算库是C语言开发的,Python只是充当了一个提供接口的“壳”,这种跨语言调用实际上是有FFI开销的,在生产环境进行高性能计算很可能还是有将Python写的原型程序用C/C++重写的情况。

搭建Python开发环境

Linux系统下使用Python

在Linux操作系统下通常系统已经自带Python了,因此我们无需额外安装,我们可以在终端中输入python3运行Python的交互式Shell。

注意:由于Python2和Python3曾在Linux上长期共存,这也导致Linux下Python3软件包对应的命令是python3pip3等,可执行程序的名字都有一个3,我们知道有这样一个历史原因即可,本系列笔记已经完全移除了Python2的内容,后续章节无论使用python还是python3命令实际上都是指Python3版本。

Windows系统下使用Python

Windows系统没有自带Python程序,我们需要在官方网站下载Python软件包,安装包通常是一个EXE格式的安装程序,运行后可以选择全局安装到操作系统中,安装程序会自动设置环境变量等系统配置,安装完成后我们就可以直接使用Python了,我们可以在命令行中输入python命令打开交互式Shell。

安装完成后我们会在开始菜单中找到相关的功能,其中IDLE是一个简易的Python开发工具,它支持交互式Shell和编辑.py源代码文件,此外还有文档等内容的快捷方式。不过一般来说我们还是通常在CMD或PowerShell中以命令方式使用Python,或使用Eclipse、VSCode等集成开发环境(IDE)编写Python程序。

Python开发工具

在Eclipse IDE中,我们可以在Market Place中搜索安装PyDev插件,该插件提供了Python开发的完整支持。

此外我们也可以选择VSCode代码编辑器开发Python程序,微软官方为VSCode提供了Python扩展,我们安装即可。

除了Eclipse和VSCode,许多其它流行的的集成开发环境和代码编辑器如Visual Studio、Vim、Sublime Text等也都提供了Python开发相关的扩展和支持,这里就不多介绍了。

Hello World

这里我们使用Python语言编写一个最简单的工程,以下使用Linux操作系统来演示,Windows下也是类似的操作,就不过多赘述了。首先我们创建一个文件夹,例如demo-python,然后进入到文件夹中,这个文件夹可以作为我们项目的根目录。

mkdir demo-python && cd demo-python

使用Python语言创建代码工程的一个最佳实践是使用虚拟环境,这是因为Python有着众多的第三方库,这些库版本和库的依赖库版本可能会有着非常复杂的关系,如果全局安装一个特定版本的库会造成很多冲突,因此我们最好创建虚拟环境并将扩展等都安装到虚拟环境中。

通过以下命令,在当前环境下创建一个虚拟环境。

python3 -m venv ./venv/

执行完成后我们可以看到当前文件夹下生成了一个venv文件夹,此时我们还需要激活这个虚拟环境。

source ./venv/bin/activate

现在我们创建一个源代码文件,例如main.py

main.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

if __name__ == '__main__':
    print('Hello, world!')

代码中第一行被称为Shebang,这是一种Unix/Linux系统的惯例,标识该脚本使用python3运行;第二行声明该源码文件使用UTF-8编码,实际上这两行不写也可以,Shebang仅用于Unix/Linux系统下赋予脚本可执行权限后直接运行的情况,而源码编码默认就会以UTF-8读取。后面几行就是具体执行的Python代码了。

最后使用命令行执行该源代码文件。

python3 main.py

至此我们已经成功运行了我们的第一个Python程序。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap