目录
一、什么是Python
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
二、Python 的历史
Python是由创始人贵铎·范·罗萨姆(Guido van Rossum)在阿姆斯特丹于1989年圣诞节期间,为了打发圣诞节的无趣,开发的一个新的解释型脚本语言。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是BBC当时正在热播的喜剧连续剧“Monty Python”的爱好者。
Python的第一个公开发行版发行于1991年,它是纯粹的自由软件, 源代码和解释器(CPython)都遵循 GPL(GNU General Public License)协议。
三、Python 的优点
1、软件质量高
Python秉承了简洁、清晰的语法,以及高度一致的编程模式。始终如一的设计风格,可以保证开发出相当规范的代码。
针对错误,Python 提供了“安全合理”的退出机制。Python支持异常处理,能有效捕获和处理程序运行时发生的错误,使你能够监控这些错误并进行处理。
2、开发速度快
Python致力于开发速度的最优化:简洁的语法、动态的类型、无需编译、丰富的库支持等特性使得程序员可以快速的进行项目开发。Python往往只要几十行代码就可以开发出需要几百行C代码的功能。
3、功能强大
Python的功能足够强大,本身也足够强壮, 它还有许多面向其他系统的接口,所以完全可以使用 Python 开发整个系统的原型。
为了完成更多特定的任务,Python内置了许多预编码的库工具,从正则表达式到网络编程,再到数据库编程都支持。在web领域、数据分析领域等,Python还有强大的框架帮你快速开发你的服务。例如:Django、TruboGears、Pylons等。
4、易于扩展
Python易于扩展,(对于CPython)可以通过C或C++编写的模块进行功能扩展,使其能够成为一种灵活的黏合语言,可以脚本化处理其他系统和组件的行为。
5、跨平台
Python是跨平台的。在各种不同的操作系统上(Linux、windows、MacOS、Unix等)都可以看到Python 的身影。因为Python 是用C 写的,又由于C 的可移植性,使得Python 可以运行在任何带有ANSI C 编译器的平台上。尽管有一些针对不同平台开发的特有模块,但是在任何一个平台上用Python 开发的通用软件都可以稍事修改或者原封不动的在其他平台上运行。这种可移植性既适用于不同的架构,也适用于不同的操作系统。
四、Python 的缺点
第一个缺点就是运行速度慢。和C/C++程序相比Python的运行速度非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。不过,根据二八定律,大多数程序对速度要求不高。某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。
而且你自己的时间是宝贵的资源,比CPU时间更珍贵。Python开发速度带来的效益往往比执行速度带来的损失更为重要,尤其是在现代计算机高速的处理能力情况下。 一些改进可能太难以实现,或者可能影响代码的可移植性或可维护性。 并非所有的性能改进都值得付出努力。
第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码。这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码发布出去。要从机器码完整反推出C代码是不可能的。
五、Python 的开发方向和应用场景
Web网络开发:
Python提供丰富的模块支持sockets编程,多线程编程,能方便快速地开发网络服务程序。支持最新的XML技术,支持json语言,数据库编程,而且Python的ORM框架,使得操作数据库非常方便。
Python还有优秀的Django、Tornado、Flask等web开发框架,还用众多的开源插件的支持,足以适用各种不同的web开发需求。
自动化运维:
Python对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件的理想工具。Python程序可以搜索文件和目录树,可以运行其他程序,可以使用进程和线程并行处理。
网络爬虫:
在文本处理方面,python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
图形处理:
有PIL、Tkinter等图形库支持,能方便进行图形处理。 多媒体应用 ,Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二和三维图像处理。PyGame模块可用于编写游戏软件
除此之外,Python还应用于游戏、人工智能、大数据分析、机器人等领域。
六、Python的种类
Cpython:
执行过程:程序----(c解释器)----(字节码)----(机器码)-----cpu
Python的官方版本,这是Python初始的以及维护得最好的实现,使用C编写。新的语言特性一般会最先在这里出现。CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
Jyhton:
执行过程:程序----(java解释器)----(字节码)----(机器码)-----cpu
Python的Java实现,此实现可用作Java应用程序的脚本语言,或可用于使用Java类库创建应用程序,它也经常用于为Java库创建测试。Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
PyPy:
执行过程:程序----(字节码)----(机器码)-----cpu
完全用Python编写的Python实现。它支持在其他实现中没有找到的几个高级功能,如stackless支持和一个Just in Time编译器。PyPy将Python的源码翻编译成字节码再编译成机器码。
其他类别:Python for .NET、IronPython、RubyPython、Brython ...
七、Python版本
python有两个版本,python 2.X和python 3:
python 2.x的最后一个版本是python2.7(于2010年发布),官方将支持到2020年。
python 3.X的第一个版本python 3.0(于2008年发布)
python 3.X不兼容 Python 2.X版本,官方也有发布python2.6作为过渡到Python 3.0的版本,2.6之后的版本都为过渡版本。
为什么要开发 Python 3.X版本呢?因为 python发展了20多年,里面有很多重复的功能,重复的模块,很多代码也变得不那么简洁,所以Guido决定进行一次彻底的升级,原则是去繁从简,从而有了后续的 Python 3.X版本。