{{indexmenu_n>2}} ====== Python ====== {{:50.program:python:python_logo.png|}} Python是一种广泛使用的解释型、高级编程、通用型编程语言,由吉多·范罗苏姆(Guido van Rossum)于1989年底发明,第一版发布于1991年。可以视之为一种改良的LISP。Python的设计哲学强调代码的可读性和简洁的语法。相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 编程语言已超过上千种,大部分用在计算领域。最受欢迎的编程语言三强:Indeed 数据(2019年1月-7月)分别是Java、C++、Python,Tiobe 数据(2019年6月)分别是Java、C、Python,IEEE Spectrum 数据(2019年9月第六届编程语言排行榜)分别是Python、Java、C。 继2007年、2010年、2018年和2020年,Python再度获得2021年TIOBE“年度编程语言”([[https://www.tiobe.com/tiobe-index/|tiobe-index]])。 ===== 语言特点 ===== {{ :program:python:features-of-python.jpg?600 |}} 图据https://techvidvan.com/tutorials/python-tutorial/ - Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型。 - Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、接口等面向对象的元素。 - Python代码块使用空格或制表符缩进的方式分隔代码。 - Python仅有31个保留字,而且没有分号、begin、end等标记。 - Python是强类型语言,变量创建后会对应一种数据类型,出现在统一表达式中的不同类型的变量需要做类型转换。 ===== 应用场景 ===== Python已在许多应用程序领域中使用。具体在官方[[https://www.python.org/about/apps/|Python的应用]]一节表述为:网络和互联网、数据科学、教育、桌面GUI、软件开发和商业应用;而有经验人士精简为Web开发、数据科学和脚本等三大主要应用。 ==== 网络应用程序 ==== * Web开发:一些Web框架,如Django、Pyramid、TurboGears、Tornado、web2py、Zope、Flask等,可以让程序员轻松地开发和管理复杂的Web程序。 * Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。 * 作为运维工程师首选的编程语言,Saltstack和Ansible都是大名鼎鼎的自动化平台。 ==== GUI开发 ==== * Python本身包含的Tkinter库能够支持简单的GUI开发。 * 通过PyInstaller还能将程序发布为独立的安装程序包。 ==== 操作系统 ==== * 很多操作系统里,Python是标准的系统组件。 * 一些Linux发行版的安装器和系统组件使用Python语言编写。 ==== 科学计算 ==== * NumPy、SciPy、Matplotlib可以让Python程序员编写科学计算程序。 * 很多游戏使用C++编写图形显示等高性能模块。 * python已经基本成了人工智能的标准语言,tensorflow/pytorch等各种框架层出不穷。 ==== 云计算 ==== * 开源云计算解决方案OpenStack就是基于Python开发的。 * Python是数据分析的主流语言之一。 ===== 版本控制 ===== 版本控制(Version Control)包括两个层面,一是Python及包、库的版本控制,二是代码管理。 Python有诸多的版本,现用的版本包括从2010年发布的2.7到2019年发布的3.8,大体归类为2.x版和3.x版。Python 2.x和Python 3.x代码是不兼容的,也就是说二者是独立发展的,而不是从2.x到3.x的渐进发展。如果是初学者,建议直接使用最新版;成熟的开发项目则需要细致的代码迁移过程。 Python 2.x or Python 3.x?已经不再是一个问题。确切的消息是,Python 2.x最新版本[[https://pythonclock.org/|Python 2.7将在2020年1月1日退役]]。以下是[[https://python-release-cycle.glitch.me/|Python发布周期]]图: {{ :program:python:20191214155611.png?nolink |}} 在通用入门教程《Python编程:从入门到实践》中,示范代码是区分支持Python 2.x和Python 3.x的。而在其他一些教程,则是随着编程软件升级另出新版。 由于 Python 拥有众多的版本,以及不同模块也有不同的版本。同一模块不同版本有时需要的 Python 版本是不相同的,所以 Python 的版本控制显得尤为重要。 常用的有以下三种工具进行 Python 版本管理: * virtualenv * pyenv * anaconda VS Code对Python应用包的版本控制作如下描述—— Python开发人员中的最佳实践是避免将软件包安装到全局解释器环境中。在项目使用virtual environment,其中包含全局解释器的副本。激活该环境后,您随后安装的所有软件包都将与其他环境隔离。这种隔离减少了因版本冲突而引起的许多复杂情况。 代码版本控制系统有很多种,集中式管理的代表是 Subversion(SVN),分布式管理的代表是 Git,如今的新项目基本都首选 Git 作为版本控制系统。Git是基于本地存储的,要解决更换电脑或者多人协作的代码版本控制,可以使用云端存储的 [[https://github.com/|GitHub]]。 ===== 虚拟环境 ===== Python的虚拟环境针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离,比如独立使用不同的版本。Python 内置 venv用以创建虚拟环境。 ===== Python之禅 ===== 在 Python Shell 里面使用 import this 查看: {{:50.program:python:python_import_this.png|}} ===== 简易教程 ===== [[https://www.jianshu.com/p/ebc19de7a204|看完这篇文章,你的Python基础就差不多了]]