[置顶] python进阶一_简介,安装与环境部署

一.Python简介

1.历史

 Python的创始人为吉多·范罗苏姆(Guido van Rossum)。

1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个蒙提·派森的飞行马戏团的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并取得了非常好的效果,完美结合了C和其他一些语言。[1]

就这样,Python在吉多手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

目前吉多仍然是Python的主要开发者,决定整个Python语言的发展方向。Python社区经常称呼他是仁慈的独裁者。

Python 2.0于2000年10月16日发布,增加了实现完整的垃圾回收,并且支持Unicode。同时,整个开发过程更加透明,社区对开发进度的影响逐渐扩大。Python 3.0于2008年12月3日发布,此版不完全兼容之前的Python源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符,因此Python也支持泛型设计。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shell script、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。[2]《Python 技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004年,Python已在Google内部使用,Google召募许多Python高手,但在这之前就已决 定使用Python。他们的目的是尽量使用Python,在不得已时改用C++;在操控硬件的场合使用C++,在快速开发时候使用Python。”

2.一些著名的第三方库

a. Web框架

Django 开源web开发框架,它鼓励快速开发,并遵循MVC设计,我以前用过很多次,比较好用,开发周期短

ActiveGrid 企业级的Web2.0解决方案

Karrigell 简单的Web框架,自身包含了Web服务,py脚本引擎和纯python的数据库PyDBLite

webpy 一个小巧灵活的Web框架,虽然简单但是功能强大

CherryPy 基于Python的Web应用程序开发框架

Pylons 基于Python的一个极其高效和可靠的Web开发框架

Zope 开源的Web应用服务器

TurboGears 基于Python的MVC风格的Web应用程序框架

Twisted 流行的网络编程库,大型Web框架

Quixote Web开发框架

 

b. 科学计算

Matplotlib 用Python实现的类matlab的第三方库,用以绘制一些高质量的数学二维图形

SciPy 基于Python的matlab实现,旨在实现matlab的所有功能

NumPy 基于Python的科学计算第三方库,提供了矩阵,线性代数,傅立叶变换等等的解决方案

 

c. GUI

 

PyGtk 基于Python的GUI程序开发GTK+库

PyQt 用于Python的QT开发库

WxPython Python下的GUI编程框架,与MFC的架构相似

Tkinter Python下标准的界面编程包,因此不算是第三方库了o(∩_∩)o

 

d. 其他

BeautifulSoup 基于Python的HTML/XML解析器,简单易用

PIL 基于Python的图像处理库,功能强大,对图形文件的格式支持广泛

MySQLdb 用于连接MySQL数据库

cElementTree 高性能XML解析库,Py2.5应该已经包含了该模块,因此不算一个第三方库了

PyGame 基于Python的多媒体开发和游戏软件开发模块

Py2exe 将python脚本转换为windows上可以独立运行的可执行程序

pefile Windows PE文件解析器

3.python的运用

a. Web程序

Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。使用Python语言编写的Gunicorn作为Web服务器,也能够运行Python语言编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的沟通。一些Web框架,如Django、Pyramid、TurboGears、web2py、Zope、Flask等,可以让程序员轻松地开发和管理复杂的Web程序。

Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络蠕虫。第三方库Twisted支持异步在线编写程序和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。另有gevent这个流行的第三方库,同样能够支持高性能高并发的网络开发。

b. GUI开发

Python本身包含的Tkinter库能够支持简单的GUI开发。但是越来越多的Python程序员选择wxPython或者PyQt来开发跨平台的桌面软件。使用它们开发的桌面软件运行速度快,与用户的桌面环境相契合。通过PyInstaller还能将程序发布为独立的安装程序包。与C++相比较,使用Python开发桌面软件通常更快更容易。

c. 操作系统

在很多作业系统里,Python是标准的系统组件。大多数Linux发布版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端机下直接运行Python。有一些Linux发布版的安装器使用Python语言编写,比如Ubuntu的 Ubiquity安装器、Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用作业系统功能的库。通过pywin32这个第三方软件 包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用.Net Framework。一般说来,Python编写的系统管理脚本在可读性、性能、源代码重用度、扩展性几方面都优于普通的shell脚本

d. 其他

NumPy、SciPy、Matplotlib可以让Python程序员编写科学计算程序。有些公司会使用Scons代替make构建C++程序。

很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。很多游戏,如EVE Online使用Python来处理游戏中繁多的逻辑。

YouTube、Google、Yahoo!、NASA都在内部大量地使用Python。OLPC的作业系统Sugar项目的大多数软件都是使用Python编写。

二.安装与部署

1.windows下安装python3

windows下安装python3很简单,基本上是一路next,我下的是python3.3,安装路径就是默认路径:C:\Python3.3,安装好之后记得配置一下环境变量,如图:

 [置顶] python进阶一_简介,安装与环境部署_第1张图片

如何检测是否安装配置成功呢?可以这样,打开运行->cmd->python

若出现python的版本信息,如下,这安装配置成功了。

[置顶] python进阶一_简介,安装与环境部署_第2张图片

 

2.配置集成开发环境

1.在Eclipse中安装PyDev插件

使用Eclipse安装插件,进入Help—>Install New Software,一直点next。如下:

 [置顶] python进阶一_简介,安装与环境部署_第3张图片

 

 

  

 

 

 

 

 

 

你可能感兴趣的:(python)