基于Python语言编程特点及应用之探讨

时间:2022-07-12 09:23:25

基于Python语言编程特点及应用之探讨

摘要: 从Python语言的产生发展开始,通过与其他编程语言对比分析,表达该语言编程特色及优势,论述了Python语言基于网络设计应用中的主要技术和框架,以及当前在最新技术领域的应用。

关键词: python;webgame;django;云计算;大数据

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)34-8177-02

Python语言是一种功能强大的具有解释性、交互性和面向对象的第四代计算机编程语言。它是由荷兰人Guido van Rossum在八十年代末和九十年代初设计出来的,Guido van Rossum于2005年加入Google,领导并从事Python语言每一个版本的设计和开发工作。

目前Python在国内还没有被广泛熟知,但在国外早已得到成熟、广泛的应用,是非常流行的编程语言,无论在Web应用还是非Web应用中均扮演着重要角色。著名的搜索引擎google,其核心代码就是用Python完成的,迪斯尼公司的动画生成,许多Unix的版本(包括Linux)都内建了Python环境支持[1]。国内知名的豆瓣网也是使用Python技术建立。

Python也是一种脚本语言,它开发代码的效率非常高,它具有强大和丰富实用的第三方标准库,使得编程变得简洁快速;Python语言的语法表达也非常优美易读;Python支持广泛的应用程序开发,从简单的文字处理到基于Web的开发及游戏设计的应用。它是一种非常值得学习、推广和应用的一门实用性编程语言。

Python语言与C\C++、Java语言和其他脚本语言比较在国内知名度不高,但它与这些常见编程语言比较起来,有许多优秀表现,该文从以下几个方面做相关探讨。

1 Python语言的语法表达

Python语言的语法表达更加优美、简洁、易读。例如:通过屏幕输出称为编程语言第一例的经典句子“hello world”,与C和Java相比,Python不需要建立C\Java中的main函数,而是直接给出输出语句,输出字符串:

2 Python返回结果的两种表达方式

Python可以实现通过函数返回结果以及通过图形化表示更直观给出结果的两种表达方式。

这里,实现在字符串中求元音字母个数,分别使用以下两种方式表达。

1) 通过函数实现,返回元音字母个数值:

vowelCount("Abcdef!!! a? yzyzyz!")

returns 3 (two a's and one e).

2) 通过图形表达实现,则可以使用饼图,给出元音字母(这里图中粉颜色代表元音字母)在全图里所占的比例,更加直观,如图1。

程序中使用Python的标准Tk GUI工具包的接口,另外程序中通过设定两个参数,winWidth和winHeight,实现显示给定尺寸的窗口,并用饼图表示元音,辅音,或其他符号的字符数,用这些约束进行填充饼图,因篇幅所限这里实现代码略。

3 Python基于Web应用和网游设计

Python和Java语言都是开源的、跨平台语言,使用Python可以完成Java的所有功能,在基于Web应用和网游设计中有更大优势。

Python基于Web应用的实例中,知名的豆瓣网就是使用Python作为主体开发语言,进行全面网站架构以及相关应用的设计与开发,也成为国内较成功的Python之Web应用。

使用Python进行Web开发比较流行的线程模型是基于WSGI传统模式,WSGI是Python web server、application、middleware之间的官方规范标准,现在主流的Python web server和framework都是支持WSGI的。在Python后续发展中,WSGI也有两方面的局限,一是不支持异步,例如一个异步的Web server的Tornado,运行 Django(Django是python的web开发框架),则Tornado的异步特性完全用不上;二是WSGI v1.0不支持Python3.x[2],因此在Web应用未来发展趋势中,异步模型将是一个转换方向。

另一方面, 当前Python也已经逐渐成为了WebGame 行业的主流编程语言。国内网游行业资深从业人员使用Python设计的动作类网页游戏中,在服务器端的设计基本使用 Python 开发,甚至没有使用C/C++ 代码。在以往大多游戏设计里面,一般使用较多 C++ 来写host,同时经常用到脚本语言,比如最常用的一个脚本语言 LUA,一般来说,由C++调用多个 LUA 脚本来完成一个项目的业务逻辑;而使用Python 设计时有所不同,Python本身就是用来写host,主要调用使用 Python 来写的业务逻辑[3]。

网易的大量网络游戏开发在服务器端代码70%以上也是使用的Python语言设计,代替了原来占比较多的C/C++。

4 基于Python的云技术及大数据应用

Python基于云技术应用中,很多底层的虚拟化都使用python。云计算核心思想是把所有的资源以服务的方式提供给客户,云计算的平台包括IaaS/PaaS/SaaS等,IaaS是把基础设施以服务的方式提供给客户,虚拟化是IaaS的核心技术,需要用虚拟化技术的物理资源进行虚拟化,然后使用软件的方式管理这些资源;PaaS是把计算平台以服务的方式提供给客户;SaaS也是类似。构建的IasS、SaaS等服务的OpenStack(开放协议栈)是采用Python开发的,因此云计算的其他服务也是建立在IasS等服务之上的。

易度的PaaS是国内第一个基于Python语言的企业应用云端开发平台。易度使用现有的企业PaaS平台,利用现有开源技术,依托Python/Zope/Pyramid等主要技术来构建这一平台。在2007年易度转向互联网软件,推出易度云办公(),专注企业云端的办公方案[4]。BAE是百度近年的云计算平台,百度云同时支持PHP、Java和Python三语言,Python的应用也让人眼前一亮。另外,谷歌应用引擎(Google App Engine)云计算服务,也相当于一种虚拟服务器,它目前也是仅支持Python,它的一切都是围绕 Python 构建的。

在大数据处理方面,Python语言可通过python提供的标准库有效的解决用Python进行大数据处理的问题,这些数据转换成适合Python分析的数据结构,之后用Python相应的工具进行数据分析、处理,提出数据特征并用一定的结构形式表现出来。

5 结束语

Python基于信息化最新领域的应用使得它更具有魅力,自从1991年Python开始成为国外广受欢迎的动态编程语言开始, 到目前为止Python在许多领域都有了比较成功的应用,例如Google核心搜索引擎Python实现;美国宇航局使用Python实现CAD/CAE/PDM 库及模型管理系统;全球知名的光影技术先驱Industrial Light & Magic使用Python处理电影光影合成;全球最大的游戏厂商EVE-online利用Python使同时服务10.000个玩家在同一个程序的内存空间成为可能;Yahoo使用Python建立起全球范围的站点群;迪斯尼乐园Disney使用Python动画的制作等等[1]。

随着互联网和新技术的发展,国内的技术环境也在不断更新,更需要中国的软件技术人才把Python这样优秀的自由、开源软件进行积极推广、普及和应用,并引入教学课堂,而事实上,国外许多顶尖高校已在多年前开设了基于Python语言系列课程,同时引导学生做进一步研究与项目实习,及时的与实际应用接轨。期待未来国内Python的教育和应用环境能够发展和普及,我们将拭目以待。

参考文献:

[1] Chun W J. Python核心编程[M] .宋吉广,译. 2版.北京:人民邮电出版社,2008.

[2] 哲思社区.可爱的Python[M].北京:电子工业出版社,2009.

[3] 赖勇浩.Python之于Webgame的应用[C].上海:中国PyCon China 2011大会,2011.

[4] 潘俊勇.易度PaaS云开发平台技术内幕[C].上海:中国PyCon China 2011大会,2011.

[5] hongheilianmeng.Python开发技术教程[EB/OL]. http:///kf/web/Python/.

[6] developerwork.揭秘云计算[EB/OL].http:///developerworks/cn/web/wa-cloudflavor/.

[7] 鲁特兹. Python学习手册[M]. 3版.侯靖,译.北京: 机械工业出版社,2009.

[8] Wesly McKinney.Python大数据分析基础教程[M].O'Reilly Media,2013.

上一篇:基于因子分析的部队人员胜任力评价研究 下一篇:Surfer软件在气象资料自动成图中的应用研究