Python是一种面向对象的解释型计算机程序设计语言,由荷兰人吉姆·范罗苏姆于 1989年发明,第一版发行于 1991 年。 Python也是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License),即Python是跨平台的开源软件,具有很好的移植性。
严格意义上来说,Python是一门跨平台、开源、免费的解释型高级动态编程语言,同时支持伪编译将源代码转换为字节码来优化程序、提高运行速度和对源代码进行保密,并且支持使用PyInstaller、Py2Exe等工具将Python程序及其所有依赖库打包为扩展名为exe的可执行程序,使其脱离Python解释器环境和相关依赖库而在Windows平台上独立运行。
Python支持命令式编程、函数式编程,完全支持面向对象程序设计语言,语法简单清晰,并且拥有大量的成熟扩展库,几乎支持所有领域的应用开发;也有人喜欢把Python称为“胶水语言”,因为它可以把多种不同语言编写的程序融合到一起实现无缝拼接,更好地发挥不同语言和工具的优势,满足不同应用领域的需求。
最初创建Python语言的出发点就是为了便于学习。 Python的语法非常简单,甚至没有像其他语言的大括号、分号等特殊符号,表现了一种极简主义的设计思想。人们在阅读一个良好的Python程序时就感觉像是在读英语短文一样,尽管这个英语短文的语法要求非常严格。
Python上手非常快,学习曲线非常低,可以直接通过命令行交互环境来学习。 Python最大的优点是具有伪代码的本质,它使人们在开发Python程序时,专注的是解决问题,而不是弄明白语言本身。在计算机语言中,它可以说是最易读、最容易编写,也是最容易理解的。
Python是FLOSS(自由/开放源码软件)之一。简单地说,它的所有内容都是免费开源的,这意味着不需要花一分钱就可以免费使用Python,还可以自由地发布这个软件的拷贝,阅读它的源代码,对它做改动,把它的一部分用于新的自由软件中。
如果了解C语言、C++语言就会知道内存管理常带来很大麻烦,程序非常容易出现内存方面的漏洞。但是在Python中内存管理是自动完成的,用户可以专注于程序本身。
由于它的开源本质,Python已被移植到众多平台上。这些平台包括Linux、Windows等。
大多数计算机编程语言都是编译型的,在运行之前需要将源码编译为操作系统可以执行的二进制格式(0110 格式),这样大型项目编译过程非常耗费时间,而Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于不再需要担心如何编译程序,如何确保连接转载正确的库等,使用Python变得更加简单。由于只需要把Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得Python程序更加易于移植。
Python既支持面向过程编程,又支持面向对象编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。
Python除了使用Python本身编写外,还可以混合使用C语言、Java语言等编写。比如,用户需要一段关键代码运行得更快或者希望某些算法不公开,就可以把部分程序用C语言或者C++语言编写,然后在Python程序中使用它们。
Python本身具有丰富而且强大的库,而且由于Python的开源特性,第三方库也非常多。Python标准库确实很庞大。它可以帮助用户处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、电子邮件、密码系统、图形用户界面和其他与系统有关的操作。只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等。
Python采用强制缩进的方式使得代码具有极佳的可读性。它确实非常适合用来学习编程,在全世界每天都有成千上万的专业人士在使用它。
Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。 Python定义了WSGI标准应用接口来协调HTTP服务器与基于Python的Web程序之间的通信。一些Web框架,如Django、TurboGears、Web2Py、Zope等,可以让程序员轻松地开发和管理复杂的Web程序。
在很多操作系统里,Python是标准的系统组件。大多数Linux发行版以及NetBSD、Open BSD和Mac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器, RedHat Linux和Fedora的Anaconda安装器。 Gentoo Linux使用Python来编写它的Portage包管理系统。 Python标准库包含了多个调用操作系统功能的库。通过PyWin32 这个第三方软件包,Python能够访问Windows的COM服务及其他Windows API。使用IronPython,Python能够直接调用Net Framework。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。
NumPy、SciPy、Matplotlib可以让Python程序员编写科学计算程序。
PyQt、PySide、wxPython、PyGTK是Python快速开发桌面应用程序的利器。
Python对各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。
很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单,体积更小,而Python则支持更多的特性和数据类型。