Python和Lua是什么?

作者&投稿:旗徐 (若有异议请与网页底部的电邮联系)
python和lua哪个用处范围广或者更实用,再或者更容易学= =?~

肯定是python广泛,python是跨平台通用型语言,什么都可以做,用最多的是linux下写脚本以及网站后台。lua基本被用作嵌入式脚本,比如游戏人物流程。

从头学肯定是python方便,如果有c的基础,可能看lua更顺眼。

肯定是python广泛,python是跨平台通用型语言,什么都可以做,用最多的是linux下写脚本以及网站后台。lua基本被用作嵌入式脚本,比如游戏人物流程。

从头学肯定是python方便,如果有c的基础,可能看lua更顺眼。

Python
Python(发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。

这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。

目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。

Python的Hello World程序

下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:

#!/usr/bin/env python

print "Hello, world!"

或者:
import sys

sys.stdout.write("Hello, world\n")

Python的历史

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ABC 语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。

ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在 Python 中避免这一错误(的确如此,Python 与其它的语言如C、C++和Java结合的非常好)。同时,他还想实现在 ABC 中闪现过但未曾实现的东西。

就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

Python在编程语言中的定位

很多大规模软件开发计划例如 Zope, Mnet 及 BitTorrent. Google都在广泛地使用它。

通常认为,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作为一种编程语言的特色。新的内置模块(module)可以用C 或 C++写成。而我们也可为现成的模块加上Python的接口。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。

Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言(称为The Zen of Python)里面表述为:

There should be one-- and preferably only one --obvious way to do it.

有意思的是,这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。这似乎是人们常把Perl和Python互相比较的重要原因。

Python语言是一种清晰的语言的另一个意思是,它的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。

例如if语句:

if age<21:

print "You cannot buy wine!\n"

print "But you can buy chewing gum.\n"

print "this is outside if\n"

一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。

另外Python在其他部分的设计上也坚持了清晰划一的风格,这使得Python称为一门易读性、易维护性好,并且被大量用户所欢迎的、用途广泛的语言。

Python直接编写的程序段有时运行效率甚至高于用C编写的程序。

Python的局限
虽然Python是一个非常成功的语言,但是也有必要明白它的局限性。
1. 强制缩进
这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,而这是用肉眼无法分别的。

2. 命令行输出问题
很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。(对很多用户而言这也不算是限制)

Python的前景
Python在编程领域的占有率一直处于稳步上升之中,根据最新的数据,Python排名第六。前五名分别是Java、C、VB、PHP和C++. 作为一个很年轻的语言,Python的位置已经相当令人振奋了。随着微软将Python纳入.Net 平台,相信Python的将来会更加强劲发展。Python 很可能会成为.Net平台快速开发的主流语言。欲了解这方面情况,请参考Iron Python的相关信息.
著名的搜索引擎 Google 也大量使用Python。更加令人吃惊的是,在Nokia智能手机所采用的Symbian操作系统上,Python成为继C++,Java之后的第三个编程语言!可见Python的影响力之巨大。

Python的应用

Zope-应用服务器

Plone-内容管理系统

Django-鼓励快速开发的web framework

Twisted - Python Network Application Framework Python的网络应用程序框架

TurboGears - 另一个Web应用快速开发框架

Bit Torrent - 著名的BT下载工具

2006年的Google编程大赛已经将Python作为参赛语言之一
lua
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。
Lua最著名的应用是在暴雪公司的网络游戏WOW中。

Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。

Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。
一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。

Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能,这将给Lua带来更加优秀的性能。请访问 http://luajit.luaforge.net/ 来了解这个项目。

和Python等脚本不同,Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。不过Lua还是具备了比如数学运算和字符串处理等基本的功能。

Lua 目前的最新版本是 5.1.

1 目标

LUA的目标是成为一个很容易嵌入其它语言中使用的语言。大多数程序员也认为它的确做到了这一点。

很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门等。

2 特性

LUA有如下特性:

轻量级 LUA语言的官方版本只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里。

可扩展 LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样。

其它特性 LUA还具有其它一些特性:同时支持面向过程编程和面向对象编程;自动内存管理;提供一系列数据结构,包括数组、链表、集合、字典、散列表等;语言内置正则表达式匹配;闭包(closure);函数也可以看做一个值;提供多线程支持;等等。

3 示例代码

是的,你猜对了:hello world...

print "Hello, world!"

一个比较复杂一点的例子,但是它展示了什么是闭包:

function create_a_counter()
local count = 0
return function()
count = count + 1
return count
end
end

create_a_counter()返回一个记数器,每次调用这个记数器,都会得到一个比上次大1的值。

  Python
  Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
  Lua
  Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。

都是脚本语言,我个人不是很喜欢。。。特别是你用习惯了C++之类的就更不习惯用这个。脚本语言主要是给非专业编程人员(比如游戏公司里面的游戏关卡设计师之类的)使用的,当然专业的也可以使用。但是脚本语言相对效率更低。


学习Python就业有哪些方向?
使得Python越来越适合做科学计算、绘制高质量的2D和3D图像。9. 游戏开发 在网络游戏开发中,Python也有很多应用,相比于Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,Python非常适合编写1万行以上的项目,而且能够很好的把网游项目的规模控制在10万行代码以内。

python应用于哪些领域
Python的应用领域主要有Web应用开发、自动化运维、人工智能领域、网路爬虫、科学计算、游戏开发等等。可以说Python的应用领域在各行各业有着极大重要的作用,其价值不可估量。在Web开发领域,Python绝对是一颗冉冉升起的新星。尽管 PHP、JS目前依然是Web开发的主流语言,但Python上升势头非常猛劲。尤其随着...

搞不懂python中的“与”操作是怎么一回事,和c语言中的&&是一个概念吗...
关于逻辑and和or,python的用法和Lua的用法一致。1、当两个操作数均为逻辑值时,与我们通常理解的逻辑运算一致;2、当第一个操作数为逻辑值,第二个操作数为其他类型时,执行以下规则: a and b:在a为false的时候,返回a,否则返回b。 a or b: 在a为true的时候,返回a,否则返回b。 ...

学完python可以干什么?
2、自动化测试 一切关于自动化的东西,似乎Python都可以满足,Python可以满足大多数自动化工作,提升工作效率。3、人工智能 下个时代就是人工智能时代,很多人都在关注,而我们的Python同样可以做人工智能,这是一个潜力最大的选择方向。Python简介 Python由荷兰数学和计算机科学研究学会的Guido van Rossum于...

python可以应用在哪些领域
提供有很多服务于编写网络爬虫的工具,例如 urllib、Selenium 和 BeautifulSoup 等,还提供了一个网络爬虫框架 Scrapy。·游戏开发 很多游戏都是使用C++编写图形显示等高性能的模块,使用Python或Lua编写游戏的逻辑,相比Python,Lua的功能更简单,体积也更小,但Python支持更多的特性和数据类型。除此之外,...

Python编程语言主要应用在什么领域
librarys等众多程序库的开发,使得Python越来越适合做科学计算、绘制高质量的2D和3D图像。9. 游戏开发 在网络游戏开发中,Python也有很多应用,相比于Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,Python非常适合编写1万行以上的项目,而且能够很好的把网游项目的规模控制...

python职业发展方向有哪些,各有什么优劣
4、web开发:基于web开发的框架不是很多,比如说Django,还有Tornado,Flask。其中的Python+Django应用范围是非常广泛的,开发速度也是非常快速的,学习门槛很低,可以帮助我们提供工作的效率。5、数据分析:在大量数据的基础上,结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是...

Python适合做什么?
在网络游戏开发中Python也有很多应用。相比Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与Lua相比,Python更适合作为一种Host语言,即程序的入口点是在Python那一端会比较好,然后用C\/C++在非常必要的时候写一些扩展。Python非常适合编写1万行以上的项目,而且能够很好...

Ruby,Perl,Python,Lua等语言相互之间都有哪些异同点
本文从RoR对Ruby的影响、Ruby的优势等多个角度分析了Ruby比Python成功的原因。伴随着RoR的风行,Ruby语言受到越来越多的开发者的关注,同为脚本语言,Python的地位却略显尴尬,什么样的原因,造成了这样的局面?笔者认为有以下几个方面:一、RoR的推波助澜笔者认为,Ruby的成功,很大一部分是由于RoR的带动...

Python的应用前景。
和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛 游戏开发:在网络游戏开发中Python也有很多应用。相比Lua or C++,Python 比 Lua 有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与 Lua 相比,Python 更适合作为一种 Host ...

老河口市13465159977: 什么是lua? -
汲修茴香: 先讲讲我知道的一些应用. 首先是在i OS下写游戏,《愤怒小鸟》就是用lua写的;同时,也好多用其它语言在为Iphone写游戏的程序员,添加lua到游戏开发中去,让过程更简单.当然,Lua最著名的应用是在暴雪公司的网络游戏《魔兽世界》...

老河口市13465159977: python和lua哪个用处范围广或者更实用,再或者更容易学= =? -
汲修茴香: 肯定是python广泛,python是跨平台通用型语言,什么都可以做,用最多的是linux下写脚本以及网站后台.lua基本被用作嵌入式脚本,比如游戏人物流程.从头学肯定是python方便,如果有c的基础,可能看lua更顺眼.

老河口市13465159977: Lua 是怎样一门语言 -
汲修茴香: Lua 是一个小巧的脚本语言,可以很容易被C或者C++代码调用,也可以反过来调用C/C++的.一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的.这使得Lua是作为嵌入式脚本的最佳选择.它是巴西里约热内卢天主教大学的一个研究小组于1993年开发的, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行.Lua并没有提供强大的库,这是由它的定位决定的.所以Lua不适合作为开发独立应用程序的语言.Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能.

老河口市13465159977: 什么是python -
汲修茴香: Python (发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大...

老河口市13465159977: python是什么意思 -
汲修茴香: 1、Python是一种计算机程序设计语言.2、它是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发.

老河口市13465159977: 游戏脚本语言,是不是lua超越python了 -
汲修茴香: 哪个语言好 哪个语言不好 都是不客观的,片面的 但是在实际应用上lua确实比python更加普遍,只是因为更适合 lua本身的定位 就是嵌入其他程序,完成一部分的逻辑的功能 而本身不提供强大的机制,因此lua本身就只有200K左右 而python的定位则完全相反,python需要能独立完成所有工作,因此它的定位是大而全,不同于小而精的lua,它的大小 有好几十M,这样的大小,对于大部分的游戏而言,不能被接受,所以lua使用的更多

老河口市13465159977: Ruby,Perl,Python,Lua等语言相互之间都有哪些异同点 -
汲修茴香: 前四种都是脚本语言,前三种能做的事都差不多,Python适用范围更广.Lua不了解,Go是完完全全的编译型语言,和前面4个本质上不同.我觉得Go很不错,可以尝试用Go来做原来C/C++做的事

老河口市13465159977: lua什么意思 -
汲修茴香: Lua 是一个小巧的脚本语言.是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发. 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行.Lua并没有提供强大的库,这是由它的定位决定的.所以Lua不适合作为开发独立应用程序的语言.Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能

老河口市13465159977: C++编程中,Lua可以用来做什么 -
汲修茴香: 当然这些语言是纯的函数式的编程语言,还有很多语言是命令式的,但是语言本身 的功能可以使用函数式的范式来编程,比如Python, Ruby, Lua等都可以做到

老河口市13465159977: Python是什么意思?求解释. -
汲修茴香: Python是一种解释型、面向对象、动态数据类型的高级程序设计语言.自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网