Python 应用领域


 

 

 

Python 

不仅仅是一个设计优秀的程序语言,

它能够完成现实中的各种任务,

包括开发者们日复一日所做的事情。作为编制其他组件、实现独立程序的工具,

它通常应用于各种领域。实际上,作为一种通用语言,

Python 

的应用角色几乎

是无限的:你可以在任何场合应用

Python, 

从网站和游戏开发到机器人和航天

飞机控制。

  

 

 

尽管如此,

Python 

的应用领域分为如下几类。下文将介绍一些

Python 

今最常见的应用领域,

以及每个应用领域内所用的一些工具。

我们不会对各个工

具进行深入探讨,如果你对这些话题感兴趣,请从

Python 

网站或其他一些资源

中获取更多的信息。

  

 

 

系统编程

  

 

 

Python 

对操作系统服务的内置接口,使其成为编写可移植的维护操作系统

的管理工具和部件(有时也被称为

Shell 

工具)的理想工具。

Python 

程序可以

搜索文件和目录树,可以运行其他程序,用进程或线程进行并行处理等等。

  

 

 

Python 

的标准库绑定了

POSIX 

以及其他常规操作系统(

OS 

)工具:环境

变量、

文件、

套接字、

管道、

进程、

多线程、

正则表达式模式匹配、

命令行参数、

标准流接口、

Shell 

命令启动器、文件名扩展等。此外,很多

Python 

的系统工

具设计时都考虑了其可移植性。

例如,

复制目录树的脚本无需做任何修改就可以

在几乎所有的

Python 

平台上运行。

  

 

 

用户图形接口

  

 

 

Python 

的简洁以及快速的开发周期十分适合开发

GUI 

程序。

Python 

内置

TKinter 

的标准面向对象接口

Tk GUI API 

,使

Python 

程序可以生成可移植

的本地观感的

GUI 

Python/ Tkinter GUI 

不做任何改变就可以运行在微软

Windows 

X Windows

UNIX 

Linux 

)以及

Mac OS

Classic 

OS X 

都支

持)等平台上。一个免费的扩展包

PMW 

,为

Tkinter 

工具包增加了一些高级部

件。此外,基于

C++ 

平台的工具包

wxPython GUI API 

可以使用

Python 

构建可

移植的

GUI 

  

 

 

诸如

PythonCard 

Dabo 

等一些高级工具包是构建在

wxPython 

Tkinter 

的基础

API 

之上的。

通过适当的库,

你可以使用其他的

GUI 

工具包,

例如,

Qt 

GTK 

MFC 

Swing 

等。对于运行于浏览器中的应用或在一些简单界面的需求

驱动下,

Jython

Java 

版本的

Python 

我们将会在第

2

章中进行介绍)

Python 

服务器端

CGI 

脚本提供了其他一些用户界面的选择。

  

 

 

Internet 

脚本

  

 

 

Python 

提供了标准

Internet 

模块,

使

Python 

能够广泛地在多种网络任务

中发挥作用,

无论是在服务器端还是在客户端都是如此。

脚本可以通过套接字进

行通信;从发给服务器端的

CGI 

脚本的表单中解析信息;通过

URL 

获取网页;

从获取的网页中解析

HTML 

XML 

文件;通过

XML-RPC 

SOAP 

Telnet 

通信

等。

Python 

的库使这一切变得相当简单。

  

 

 

不仅如此,从网络上还可以获得很多使用

Python 

进行

Internet 

编程的第

三方工具。例如,

HTMLGen 

可以从

Python 

类的描述中生成

HTML 

文件,

mod_python 

包可以使在

Apache 

服务器上运行的

Python 

程序更具效率并支持

Python Server Page 

这样的服务器端模板,而且支持客户端运行的服务器端

Applet 

。此外,

Python 

涌现了许多

Web 

开发工具包,例如,

Django 

TurboGears 

Pylons 

Zope 

WebWare 

,使

Python 

能够快速构建功能完善

和高质量的网站。

  

 

 

组件集成

  

 

 

在介绍

Python 

作为控制语言时,曾涉及它的组件集成的角色。

Python 

以通过

C/C++ 

系统进行扩展,并能够嵌套

C/C++ 

系统的特性,使其能够作为一

种灵活的粘合语言,

脚本化处理其他系统和组件的行为。

例如,

将一个

C

库集成

Python 

中,

能够利用

Python 

进行测试并调用库中的其他组件;

Python 

入到产品中,

在不需要重新编译整个产品或分发源代码的情况下,

能够进行产品

的单独定制。

  

 

 

为了在脚本中使用,在

Python 

连接编译好组件时,例如,

SWIG 

SIP 

样的代码生成工具可以让这部分工作自动完成。

更大一些的框架,

例如,

Python 

的微软

Windows 

所支持的

COM 

、基于

Java 

实现的

Jython 

、基于

.NET 

实现的

IronPython 

和各种

CORBA 

工具包,提供了多种不同的脚本组件。例如,在

Windows 

中,

Python 

脚本可利用框架对微软

Word 

Excel 

文件进行脚本处理。

  

 

 

数据库编程

  

 

 

对于传统的数据库需求,

Python 

提供了对所有主流关系数据库系统的接口,

例如,

Sybase 

Oracle 

Informix 

ODBC 

MySQL 

PostgreSQL 

SQLite 

Python 

定义了一种通过

Python 

脚本存取

SQL 

数据库系统的可移植的数据库

API 

,这个

API 

对于各种底层应用的数据库系统都是统一的。例如,因为厂商

的接口实现为可移植的

API 

,所以一个写给自由软件

MySQL 

系统的脚本在很大

程度上不需改变就可以工作在其他系统上

(例如,

Oracle 

-- 

你仅需要将底层

的厂商接口替换掉就可以实现。

  

 

 

Python 

标准的

pickle 

模块提供了一个简单的对象持久化系统:它能够让

程序轻松地将整个

Python 

对象保存和恢复至文件和文件类的对象中。

在网络上,

同样可以找到名叫

ZODB 

的第三方系统,它为

Python 

脚本提供了完整的面向对

象数据库系统,

系统

SQLObject 

可以将关系数据库映射至

Python 

的类模块。

且,

Python 

2.5 

版本开始,

SQLite 

已经成为

Python 

自带标准库的一部分了。

  

 

 

快速原型

  

 

 

对于

Python 

程序来说,使用

Python 

C

编写的组件看起来都是一样的。

正因为如此,我们可以在一开始利用

Python 

做系统原型,之后再将组件移植到

C

C++ 

这样的编译语言上。

和其他的原型工具不同,

当原型确定后,

Python 

需要重写。系统中不需要像

C++ 

这样执行效率的部分可以保持不变,从而使维

护和使用变得轻松起来。

  

 

 

数值计算和科学计算编程

  

 

 

我们之前提到过的

NumPy 

数值编程扩展包括很多高级工具,例如,矩阵对

象、标准数学库的接口等。通过将

Python 

与出于速度考虑而使用编译语言编写

的数值计算的常规代码进行集成,

NumPy 

Python 

变成一个缜密严谨并简单易

用的数值计算工具,这个工具通常可以替代已有的代码,而这些代码都是用

FORTRAN 

C++ 

等编译语言编写的。

其他一些数值计算工具为

Python 

提供了动

画、

3D 

可视化、并行处理等功能的支持。

  

 

 

游戏、图像、人工智能、

XML 

、机器人等

  

 

 

Python 

的应用领域很多,远比这里提到的多得多。例如,可以利用

pygame 

系统使用

Python 

对图形和游戏进行编程;

PIL 

和其他的一些工具进行图像处

理;

PyRo 

工具包进行机器人控制编程;

xml 

库、

xmlrpclib 

模块和其他一

些第三方扩展进行

XML 

解析;

使用神经网络仿真器和专业的系统

shell 

进行

AI 

编程;

使用

NLTK 

包进行自然语言分析:

甚至可以使用

PySol 

程序下棋娱乐。

以从

Vaults of Parnassus 

以及新的

PyPI 

网站(请在

Google 

http://www.python.org 

上获得具体链接)找到这些领域的更多支持。

  

 

 

一般来说,

这些特定领域当中有许多在很大程度上都是

Python 

组件集成角

色的再次例证。采用

C

这样的编译语言编写库组件,增加

Python 

至其前端,这

样的方式使

Python 

在不同领域广泛地发挥其自身价值。

对于一种支持集成的通

用型语言,

Python 

的应用极其广泛。

  

 

 

企业与政务应用

  

 

 

目前,

Python

已经成功的实现企业级应用,在全球,已经有很多公司采用

Python

进行企业级软件的开发和应用,比如:

ERP

CRM

这样的应用。同时,通

Python

技术,成功的实现了许多政务应用。

  

 

 

Python

写的较大的系统有:

  

 

 

Zope

:一个应用程序服务器,具有内容管理、团队开发、

XML

、面向对象、

SOAP

接口等一系先进特性,且开放源码。参见:

www.zope.com

  

 

 

Gadfly

:一个用

Python

写的面向对象关系型数据库,具有小巧、快速、可

移植性好,具有大部分

SQL

语言特性,且开放源码。参见:

http://www.chordate.com/gadfly.html

  

 

 

还有一些比较有名的公司也在用

Python

进行原型的开发,如

Microsoft

IBM

等,还有:

  

 

 

红帽

(Red 

Hat 

)

曾用

Python

Tk

一起成功开发配置和管理操作系统的可视

界面。

整个系统可以全面控制

Linux

操作系统,

并根据用户选择对配置文件作自

动更新。

  

 

 

Infoseek

在其公用搜索引擎使用了

Python

该公司还用

Python

对其软件进

行定制,使最终用户能对该网站内容进行方便下载。

   

 

云计算平台

(

运维系统

OpenStack

IaaS(

基础设施即服务

)

组件,

让任何人都可以自行建立和提供云端

运算服务

,

全部采用

python

开发

 

OpenStack 

是一个旨在为公共及私有云的建设与管理提供软件的开源项目。

它的

社区拥有超过

130

家企业及

1350

位开发者,这些机构与个人都将

OpenStack

为基础设施即服务

(简称

IaaS

资源的通用前端。

OpenStack

项目的首要任务是

简化云的部署过程并为其带来良好的可扩展性。

本文希望通过提供必要的指导信

息,帮助大家利用

OpenStack

前端来设置及管理自己的公共云或私有云。

 

 

企业内部采用

python

开发运维管理系统,因为

python

web , 

系统管理方面

 

都比较擅长,还有面向对象特性,这是

shell

脚本不能胜任的,相比

perl

他语

法简单,可读性强,所是可以大面积使用的语言

 

 

Python 

和其他语言比较

  

 

 

Tcl 

强大。

Python 

支持

"

大规模编程

"

,使其适宜于开发大型系统。

  

 

 

有着比

Perl 

更简洁的语法和更简单的设计,这使得

Python 

更具可读性、

更易于维护,有助于减少程序

bug 

  

 

 

Java 

更简单、

更易于使用。

Python 

是一种脚本语言,

Java 

C++ 

这样

的系统语言中继承了许多语法和复杂性。

  

 

 

C++ 

更简单、更易于使用,但通常也不与

C++ 

竞争。因为

Python 

作为

脚本语言,常常扮演多种不同的角色。

  

 

 

Visual Basic 

更强大也更具备跨平台特性。由于

Python 

是开源的,也

就意味着它不可能被某一个公司所掌控。

  

 

 

Ruby 

更成熟、语法更具可读性。与

Ruby 

Java 

不同的是,

OOP 

对于

Python 

是可选的:这意味着

Python 

不会强制用户或项目选择

OOP 

进行开发。

  

 

 

具备

SmallTalk 

Lisp 

等动态类型的特性,

但是对开发者及定制系统的终

端用户来说更简单,也更接近传统编程语言的语法。

  

 

 

特别对不仅仅做文本文件扫描还有也许未来会被人们读到

(或者说你)

的程

序而言,很多人会发现

Python 

比目前任何的可用的脚本或编程语言都划得来。

不仅如此,

除非你的应用要求最尖端的性能,

Python 

往往是

C

C++ 

Java 

系统开发语言的一个不错的替代品:

Python 

将会减少很多编写、调试和维护的

麻烦。

  

 

目前使用

Python

的企业

  

 

 

Google 

在其网络搜索系统中广泛应用了

Python 

并且聘用了

Python 

的创

作者。

  

 

 

YouTube 

视频分享服务大部分是由

Python 

编写的。

  

 

 

流行的

P2P 

文件分享系统

Bittorrent 

是一个

Python 

程序。

  

 

 

Intel 

Cisco 

Hewlett-Packard 

Seagate 

Qualcomm 

IBM 

使用

Python 

进行硬件测试。

  

 

 

Industrial Light & Magic 

Pixar 

等公司使用

Python 

制作动画电影。

  

 

 

在经济市场预测方面,

JPMorgan Chase 

UBS 

Getco 

Citadel 

使用

Python 

  

 

 

NASA 

Los 

Alamos 

Fermilab 

JPL 

等使用

Python 

实现科学计算任务。

  

 

 

IRobot 

使用

Python 

开发了商业机器人真空吸尘器。

  

 

 

ESRI 

在其流行的

GIS 

地图产品中使用

Python 

作为终端用户的定制工具。

  

 

 

NSA 

在加密和智能分析中使用

Python 

  

 

 

IronPort 

电子邮件服务器产品中使用了超过

100 

万行的

Python 

代码实现

其作业。

  

 

 

OLPC 

使用

Python 

建立其用户界面和动作模块。

  

 

 

总结:

 

个人总结

python

有两个主要优点:

 

.

 

胶水语言

 

Python

在功能方面是个折中的语言,

在各个领域相比来说没有特别突出,

他的优点在于,

他与各语言的集成度很高,

就像一个胶水,

其实这在目前开发语言百花齐放的阶段,

各个

系统独立分散,环境复杂,确实需要一个通用的语言能架起他们之前的桥梁

,

它对各语言

的支持最广泛,

甚至都可以调用其它语言的类库,

在云时代迫切需要一个环境单一,

便于

维护的,开源的,支持广泛应用的系统,

python

虽然是一门很老的语言,但他的应用领

域还是一些比较新的领域,他的潜力很大,他经历了这么久的历练,相信在云时代,他会

有不可替代的作用

 

 

 

.

 

可维护性

 

一个好的代码,不仅仅是自己能看懂,其它人能看懂,这才是很好的代码,

python

代码倡导简洁,可读性强,这是他最明显的优点,相比

java

他语法更简单,同功能

代码量更少

,

他是新一代的面向对象的脚本语言。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值