【vfp开源代码栏目提醒】:本文主要为网学会员提供“python - 企业软件开发”,希望对需要python - 企业软件开发网友有所帮助,学习一下!
Python 百科名片 PythonKK 英语发音/paθɑn/ DJ 英语发音/瀂愀椀θ渂/是一种面向对象、直译式计算机程序设计语言由Guido van Rossum于1989年底发明 第一个公开发行版发行于1991年。
Python语法简捷而清晰具有丰富和强大的类库。
它常被昵称为胶水语言它能够很轻松的把用其他语言制作的各种模块尤其是C/C轻松地联结在一起。
常见的一种应用情形是使用python快速生成程序的原型有时甚至是程序的最终界面然后对其中有特别要求的部分用更合适的语言改写比如3D游戏中的图形渲染模块速度要求非常高就可以用C重写。
目录 产生 风格 执行 优点 局限 应用 工具 升级 产生 Python的创始人为Guido van Rossum。
1989年圣诞节期间在阿姆斯特丹Guido为了打发圣诞节的无趣决心开发一个新的脚本解释程序做为ABC 语言的一种继承。
之所以选中Python大蟒蛇的意思作为程序的名字是因为他是一个Monty Python的飞行马戏团的爱好者。
ABC是由Guido参加设计的一种教学语言。
就Guido本人看来ABC 这种语言非常优美和强大是专门为非专业程序员设计的。
但是ABC语言并没有成功究其原因Guido 认为是非开放造成的。
Guido 决心在Python 中避免这一错误。
同时他还想实现在ABC 中闪现过但未曾实现的东西。
就这样Python在Guido手中诞生了。
实际上第一个实现是在Mac机上。
可以说Python是从ABC发展起来主要受到了Modula-3另一种相当优美且强大的语言为小型团体所设计的的影响。
并且结合了Unix shell和C的习惯。
风格 Python在设计上坚持了清晰划一的风格这使得Python成为一门易读、易维护并且被大量用户所欢迎的、用途广泛的语言。
Python直接编写的程序段有时运行效率甚至高于用C编写的程序。
设计者开发时总的指导思想是对于一个特定的问题只要有一种最好的方法来解决就好了。
这在由Tim Peters写的python格言称为The Zen of Python里面表述为There should be one-- and preferably only one --obvious way to do it. 这正好和Perl语言另一种功能类似的高级动态语言的中心思想TMTOWTDITheres More Than One Way To Do It完全相反。
Python的作者有意的
设计限制性很强的语法使得不好的编程习惯例如if语句的下一行不向右缩进都不能通过编译。
其中很重要的一项就是Python的缩进规则。
一个和其他大多数语言如C的区别就是一个模块的界限完全是由每行的首字符在这一行的位置来决定的而C语言是用一对花括号来明确的定出模块的边界的与字符的位置毫无关系。
这一点曾经引起过争议。
因为自从C这类的语言诞生后语言的语法含义与字符的排列方式分离开来曾经被认为是一种程序语言的进步。
不过不可否认的是通过强制程序员们缩进包括iffor和函数定义等所有需要使用模块的地方Python确实使得程序更加清晰和美观。
执行 Python在执行时首先会将.py文件中的源
代码编译成Python的byte code字节码然后再由Python Virtual Machine来执行这些编译好的byte code。
这种机制的基本思想跟Java.NET是一致的。
然而Python Virtual Machine与Java或.NET的Virtual Machine不同的是Python的Virtual Machine是一种更高级的Virtual Machine。
这里的高级并不是通常意义上的高级不是说Python的Virtual Machine比Java或.
NET的功能更强大而是说和
Java 或.NET相比Python的Virtual Machine距离真实机器的距离更远。
或者可以这么说Python的Virtual Machine是一种抽象层次更高的Virtual Machine。
基于C的Python编译出的字节码文件通常是.pyc格式。
优点 简单Python是一种代表简单主义思想的语言。
阅读一个良好的Python程序就感觉像是在读英语一样。
它使你能够专注于解决
问题而不是去搞明白语言本身。
易学Python极其容易上手因为Python有极其简单的语法。
免费、
开源Python是FLOSS自由/开放源码软件之一。
使用者可以自由地发布这个软件的拷贝、阅读它的源
代码、对它做改动、把它的一部分用于新的自由软件中。
FLOSS是基于一个团体分享知识的概念。
高层语言用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
可移植性由于它的
开源本质Python已经被移植在许多平台上经过改动使它能够工作在不同平台上。
这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。
解释性一个用编译性语言比如C或C写的程序可以从源文件即C或C语言转换到一个你的计算机使用的语言二进制
代码即0和1。
这个过程通过编译器和不同的标记、选项完成。
运行程序的时候连接/转载器软件把你的程序从硬盘复制到内存中并且运行。
而Python语言写的程序不需要编译成二进制
代码。
你可以直接从源
代码运行 程序。
在
计算机内部Python解释器把源
代码转换成称为字节码的中间形式然后再把它翻译成计算机使用的机器语言并运行。
这使得使用Python更加简单。
也使得Python程序更加易于移植。
面向对象Python既支持面向过程的编程也支持面向对象的编程。
在“面向过程”的语言中程序是由过程或仅仅是可重用
代码的函数构建起来的。
在“面向对象”的语言中程序是由数据和功能组合而成的对象构建起来的。
可扩展性如果需要一段关键
代码运行得更快或者希望某些算法不公开可以部分程序用C或C编写然后在Python
程序中使用它们。
可嵌入性可以把Python嵌入C/C程序从而向程序用户提供脚本功能。
丰富的库Python标准库确实很庞大。
它可以帮助处理各种
工作包括正则表达式、
文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、
HTML、WAV文件、密码系统、GUI图形用户界面、Tk和其他与系统有关的操作。
这被称作Python的“功能齐全”理念。
除了标准库以外还有许多其他高质量的库如wxPython、Twisted和Python图像库等等。
规范的
代码Python采用强制缩进的方式使得
代码具有较好可读性。
局限 强制缩进这也许不应该被称为局限但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。
单行语句和命令行输出问题很多时候不能将程序连写成一行如import sysfor i in sys.path:print i。
而perl和awk就无此限制可以较为方便的在shell下完成简单程序不需要如Python一样必须将程序写入一个.py文件。
应用 系统编程提供API能方便进行系统维护和管理Linux下标志性语言之一是很多
系统管理员理想的编程工具。
图形处理有PIL、Tkinter等图形库支持能方便进行图形处理。
数学处理NumPy扩展提供大量与许多标准数学库的接口。
文本处理python提供的re模块能支持正则表达式还提供SGMLXML分析模块许多程序员利用python进行XML程序的开发。
数据库编程程序员可通过遵循Python DB-API数据库应用程序编程接口规范的模块与Microsoft SQL ServerOracleSybaseDB2Mysql、SQLite等数据库通信。
python自带有一个Gadfly模块提供了一个完整的SQL环境。
网络编程提供丰富的模块支持sockets编程能方便快速地开发分布式应用程序。
很多大规模软件开发计划例如ZopeMnet 及BitTorrent. Google都在广泛地使用它。
Web编程应用的开发语言支持最新的XML技术。
多媒体应用Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”能进行二维和三维图像处理。
PyGame模块可用于编写游戏软件。
工具 部分工具
列表 名称 功能 Tkinter Python默认的图形界面接口。
Tkinter是一个和Tk接口的Python模块Tkinter库提供了对Tk API的接口它属于Tcl/Tk的GUI工具组。
Tcl/Tk是由John Ousterhout发展的书写和图形设备。
Tcl工具命令语言是个宏语言用于简化shell下复杂程序的开发Tk工具包是和Tcl一起开发的目的是为了简化用户接口的设计过程。
Tk工具包由许多不同的小部件如一个按钮、一个滚动条等。
通过Tk提供的这些小部件我们就可快速地进行GUI开发。
Perl、Scheme等语言也利用Tk库进行GUI开发。
Tkinter是跨平台在各种平台下都能使用。
PyGTK 用于python GUI程序开发的GTK库。
GTK就是用来实现GIMP和Gnome的库。
PyQt 用于python的Qt开发库。
QT就是实现了KDE环境的那个库由一系列的模块组成有qt qtcanvas qtgl qtnetwork qt
sql qttable qtui and qtxml包含有300个类和超过5750个的函数和方法。
PyQt还支持一个叫qtext的模块它包含一个QScintilla库。
该库是Scintillar编辑器类的Qt接口。
wxPython GUI编程框架熟悉MFC的人会非常喜欢简直是同一架构对于初学者或者对设计要求不高的用户来说使用Boa Constructor可以方便迅速的进行wxPython的开发 PIL python提供强大的图形处理的能力并提供广泛的图形文件格式支持该库能进行图形格式的转换、打印和显示。
还能进行一些图形效果的处理如图形的放大、缩小和旋转等。
是Python用户进行图象处理的强有力工具。
Psyco 一个Python
代码加速度器可使Python
代码的执行速度提高到与编译语言一样的水平。
xmpppy Jabber服务器采用开发的XMPP协议Google Talk也是采用XMPP协议的IM系统。
在Python中有一个xmpppy模块支持该协议。
也就是说我们可以通过该模块与Jabber服务器
通信是不是很Cool。
PyMedia 用于多媒体操作的python模块。
它提供了丰富而简单的接口用于多媒体处理wav mp3 ogg avi divx dvd cdda etc。
可在Windows和Linux平台下使用。
Pmw Python megawidgetsPython超级GUI组件集一个在python中利用Tkinter模块构建的高级GUI组件每个Pmw都合并了一个或多个Tkinter组件以实现更有用和更复杂的功能。
PyXML 用Python解析和处理XML
文档的工具包包中的4DOM是完全相容于W3C DOM规范的。
它包含以下内容
xmlproc: 一个符合规范的XML解析器。
Expat: 一个快速的非验证的XML解析器。
还有其他 和他同级别的还有 PyHtml PySGML PyGame 用于多媒体开发和游戏
软件开发的模块。
PyOpenGL 模块封装了“OpenGL应用程序编程接口”通过该模块python程序员可在程序中集成2D和3D的图形。
NumPy、NumArray、SAGE NumArray是Python的一个扩展库主要用于处理任意维数的固定类型数组简单说就是一个矩阵库。
它的低层
代码使用C来编写所以速度的优势很明显。
SAGE是基于NumPy和其他几个工具所整合成的数学软件包目标是取代Magma Maple Mathematica和Matlab 这类工具。
MySQLdb 用于连接MySQL数据库。
还有用于zope的ZMySQLDA模块通过它就可在zope中连接
mysql数据库。
Python-l提供一组面向对象的API可方便地在python中访问ldap目录服务它基于OpenLDAP2.x。
dap smtplib 发送电子邮件。
ftplib 定义了FTP类和一些方法用以进行客户端的ftp编程。
如果想了解ftp协议的详细内容请参考RFC959。
升级 Python的3.0版本在开发阶段被称为Python 3000或简称Py3k。
相对于Python的早期版本这是一个较大的升级。
为了不带入过多的累赘Python 3.0在设计的时候就没有考虑向下兼容。
许多针对早期Python版本设计的程序都无法在Python 3.0上正常运行。
为了照顾现有程序Python 2.6作为一个过渡版本基本使用了Python 2.x的语法和库同时考虑了向Python 3.0的迁移。
基于早期Python版本而能正常运行于Python 2.6并无警告的程序可以通过一个2 to 3的转换工具无缝迁移到Python 3.0。
Python 3.0的变化主要在以下几个方面 部分函数和语句的改变最引人注意的改变是print语句没有了取而代之的是print函数 字符串和字节类似Javastr类表示一个Unicode字符串代替了早期版本的unicode类。
而一堆字节则用类似babc的语法创建用bytes类表示。
开发环境 专门为Python设计的IDE ●IDLEPython内置IDE 随python安装包提供 ●Komodo和Komodo Edit后者是前者的
免费精简版 ●PythonWinActivePython或pywin32均提供该IDE仅适用于Windows ●SPEStanis Python Editor功能较多的自由软件基于wxPython ●Ulipad功能较全的自由软件基于wxPython作者是中国Python高手limodou ●WingIDE可能是功能最全的IDE但不是自由软件教育用户和
开源用户可以申请免费key ●Eric基于PyQt的自由软件功能强大。
全名是The Eric Python IDE ●DrPython ●PyScripter使用
Delphi开发的轻量级的
开源Python IDE 支持Python2.6和3.0。
●PyPE一个
开源的跨平台的PythonIDE。
●bpython 类Unix操作系统下使用curses库开发的轻量级的Python解释器。
语法提示功能。
有相应插件的通用IDE软件 ●eclipse pydev插件方便调试程序 ●emacs自带python支持自动补全、refactor等功能需要插件支持 ●Vim: 最新7.3版编译时可以加入python支持提供python
代码自动提示支持 ●Visual Studio 2003 VisualPython仅适用Windows已停止维护功能较差 ●SlickEdit ●Visual Studio 2010 Python Tools for Visual Studio ●TextMate ●Netbeans IDE 另外诸如EditPlus、UltraEdit、PSPad等通用的程序员文本编辑器软件也能对Python
代码编辑提供一定的支持比如
代码自动着色、注释快捷键等但是否够得上集成开发环境的水平尚有待评估。
推广障碍 1 运行速度。
2 国内市场较小。
3 中文资料匮乏好的python中文资料屈指可数。
托社区的福有几本优秀的教材已经被翻译了但入门级教材多高级内容还是只能看英语版。
4 构架选择太多。
不过这也从另一个侧面说明python比较优秀吸引的人才多项目也多。
扩展阅读 1 Python官网 http://www.python.org/ 2 Python扩展包 http://pypi.python.org/ 开放分类 编程语言电脑计算机程序设计Python “Python”在英汉词典中的解释来源百度词典 python1 KK: DJ: n. 1. 蟒巨蛇 python2 KK: DJ: n. 1. 附于人体的鬼魂鬼魂附体的占卜者 “Python”相关词条 phpapachemySQLphpdocperljavavc网站架构
j2eelinuxajaxjdkaspshtmlCGIdelphisqlaccessdiv csssubversionresin
vfpzendxmlC SHARPfsohtmlaspxJava MEcdhtmliisauthorwarevbsphp语言CSSservletTkinterMySQLdbunix系统管理OracleXAMLSolarisZip