Python语言是一种功能强大的具有解释性、交互性和面向对象的第四代计算机编程语言。它是由荷兰人GuidovanRos sum在八十年代末和九十年代初设计出来的,GuidovanRossum于2005年加入Google,领导并从事Python语言每一个版本的设计和开发工作。
目前Python在国内还没有被广泛熟知,但在国外早已得到成熟、广泛的应用,是非常流行的编程语言,无论在Web应用还是非Web应用中均扮演着重要角色。著名的搜索引擎google,其核心代码就是用Python完成的,迪斯尼公司的动画生成,许多Unix的版本(包括Linux)都内建了Python环境支持。国内知名的豆瓣网也是使用Python技术建立。
Python也是一种脚本语言,它开发代码的效率非常高,它具有强大和丰富实用的第三方标准库,使得编程变得简洁快速;Python语言的语法表达也非常优美易读;Python支持广泛的应用程序开发,从简单的文字处理到基于Web的开发及游戏设计的应用。它是一种非常值得学习、推广和应用的一门实用性编程语言。
Python语言与CC++、Java语言和其他脚本语言比较在国内知名度不高,但它与这些常见编程语言比较起来,有许多优秀表现,本文从以下几个方面做相关探讨。
1.Python语言的语法表达
Python语言的语法表达更加优美、简洁、易读。例如:通过屏幕输出称为编程语言第一例的经典句子“helloworld”,与C和Java相比,Python不需要建立CJava中的main函数,而是直接给出输出语句,输出字符串:
>>>print“HelloPythonicWorld!”
屏幕输出显示结果:HelloPythonicWorld!
以上Python实现快速直接,所见即所得。
Python程序的易读性也表现在它的代码缩进语法,Python的缩进结构使得Python代码相对其他语言整齐了许多,Python语言中没有采用其他语言中花括号或begin...end...分隔代码块,而是使用冒号和代码缩进来区分代码之间的层次。例如,一个最简单的有效if语句的写法是:
ifTrue:
print“Yes,itistrue”
上面if语句在结尾处包含一个冒号,通过它告知Python后跟一个语句,当然还包括正确的代码缩进。
2.Python返回结果的两种表达方式
Python可以实现通过函数返回结果以及通过图形化表示更直观给出结果的两种表达方式。
这里,实现在字符串中求元音字母个数,分别使用以下两种方式表达。
1)通过函数实现,返回元音字母个数值:vowelCount("Abcdef!!!ayzyzyz!")
returns3(twoa'sandonee).
2)通过图形表达实现,则可以使用饼图,给出元音字母在全图里所占的比例,更加直观。
程序中使用Python的标准TkGUI工具包的接口,另外程序中通过设定两个参数,winWidth和winHeight,实现显示给定尺寸的窗口,并用饼图表示元音,辅音,或其他符号的字符数,用这些约束进行填充饼图,因篇幅所限这里实现代码略。
3.Python基于Web应用和网游设计
Python和Java语言都是开源的、跨平台语言,使用Python可以完成Java的所有功能,在基于Web应用和网游设计中有更大优势。
Python基于Web应用的实例中,知名的豆瓣网就是使用Python作为主体开发语言,进行全面网站架构以及相关应用的设计与开发,也成为国内较成功的Python之Web应用。
使用Python进行Web开发比较流行的线程模型是基于WSGI传统模式,WSGI是Pythonwebserver、application、middle ware之间的官方规范标准,现在主流的Pythonwebserver和framework都是支持WSGI的。在Python后续发展中,WSGI也有两方面的局限,一是不支持异步,例如一个异步的Webserver的Tornado,运行Django,则Tornado的异步特性完全用不上;二是WSGIv1.0不支持Python3.x,因此在Web应用未来发展趋势中,异步模型将是一个转换方向。
另一方面,当前Python也已经逐渐成为了WebGame行业的主流编程语言。国内网游行业资深从业人员使用Python设计的动作类网页游戏中,在服务器端的设计基本使用Python开发,甚至没有使用C/C++代码。在以往大多游戏设计里面,一般使用较多C++来写host,同时经常用到脚本语言,比如最常用的一个脚本语言LUA,一般来说,由C++调用多个LUA脚本来完成一个项目的业务逻辑;而使用Python设计时有所不同,Python本身就是用来写host,主要调用使用Python来写的业务逻辑。
网易的大量网络游戏开发在服务器端代码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年易度转向互联网软件,推出易度云办公,专注企业云端的办公方案。BAE是百度近年发布的云计算平台,百度云同时支持PHP、Java和Python三语言,Python的应用也让人眼前一亮。另外,谷歌应用引擎云计算服务,也相当于一种虚拟服务器,它目前也是仅支持Python,它的一切都是围绕Python构建的。
在大数据处理方面,Python语言可通过python提供的标准库有效的解决用Python进行大数据处理的问题,这些数据转换成适合Python分析的数据结构,之后用Python相应的工具进行数据分析、处理,提出数据特征并用一定的结构形式表现出来。
Python基于信息化最新领域的应用使得它更具有魅力,自从1991年Python开始成为国外广受欢迎的动态编程语言开始,到目前为止Python在许多领域都有了比较成功的应用,例如Google核心搜索引擎Python实现;美国宇航局使用Python实现CAD/CAE/PDM库及模型管理系统;全球知名的光影技术先驱IndustrialLight&Magic使用Python处理电影光影合成;全球最大的游戏厂商EVE-online利用Python使同时服务10.000个玩家在同一个程序的内存空间成为可能;Yahoo使用Python建立起全球范围的站点群;迪斯尼乐园Disney使用Python动画的制作等等。
随着互联网和新技术的发展,国内的技术环境也在不断更新,更需要中国的软件技术人才把Python这样优秀的自由、开源软件进行积极推广、普及和应用,并引入教学课堂,而事实上,国外许多顶尖高校已在多年前开设了基于Python语言系列课程,同时引导学生做进一步研究与项目实习,及时的与实际应用接轨。期待未来国内Python的教育和应用环境能够发展和普及,我们将拭目以待。
更多大数据相关小知识,欢迎关注微信公众号成都科多大数据。