- 论坛徽章:
- 10
|
本帖最后由 hiyachen 于 2015-08-07 00:15 编辑
1,在实际工作中,大家都用Python实现过什么功能?说说大家较为满意的一次使用。
在实际工作中,Python的网络·应用·是·很伟大·的·。优于java。
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 或python.org 上获得具体链接)找到这些领域
的更多支持。
一般来说,这些特定领域当中有许多在很大程度上都是Python 组件集成角色的再次例证。采用C这样的编译语言编写库组件,
增加Python 至其前端,这样的方式使Python 在不同领域广泛地发挥其自身价值。对于一种支持集成的通用型语言,Python
的应用极其广泛。
企业与政务应用
目前,Python已经成功的实现企业级应用,在全球,已经有很多公司采用Python进行企业级软件的开发和应用,比如:
ERP和CRM这样的应用。同时,通过Python技术,成功的实现了许多政务应用。
用Python写的较大的系统有:
Zope:一个应用程序服务器,具有内容管理、团队开发、XML、面向对象、SOAP接口等一系先进特性,且开放源码。
Gadfly:一个用Python写的面向对象关系型数据库,具有小巧、快速、可移植性好,具有大部分SQL语言特性,且开放源码。
还有一些比较有名的公司也在用Python进行原型的开发,如Microsoft、IBM等,还有:
红帽(Red Hat )曾用Python和Tk一起成功开发配置和管理操作系统的可视界面。整个系统可以全面控制Linux操作系统,并根据
用户选择对配置文件作自动更新。
Infoseek在其公用搜索引擎使用了Python。该公司还用Python对其软件进行定制,使最终用户能对该网站内容进行方便下载。
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 将会减少很多编写、调试和维护的麻烦。
2,对于Python3是否看好?
不看好。普及·程度不高。
3,都说语言只是工具,主要的是编程思想,那么Python作为一种面向对象的程序语言,优势体现在哪些方面?
python的优势我认为主要体现在开发效率高,这个你就很容易把注意力集中到你要实现的想法,算法等更关键的地方。
Django: Python Web应用开发框架
Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。
Cubes:轻量级Python OLAP框架
Cubes是一个轻量级Python框架,包含OLAP、多维数据分析和浏览聚合数据(aggregated data)等工具。
4,预测说Python3会在五年内被充分普及,你怎么看?
很少有人用。还不知道什么·项目·用·。
哦普及的·路还很长。 |
评分
-
查看全部评分
|