首页>>后端>>Python->lua和python语法有多少相似

lua和python语法有多少相似

时间:2023-12-09 本站 点击:0

导读:很多朋友问到关于lua和python语法有多少相似的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

Python和Lua是什么?

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

lua和python谁更适用于嵌入MMORPG

预计新项目会选择lua或python之一作为游戏的脚本语言。以前草草地接触过这两门语言,对于语法,以及嵌入进C/C++程序都有点感性上的认识。可能是受《UNIX编程艺术》中KISS原则的影响,现在总喜欢简洁的东西。所以我个人比较偏向于使用lua。

这两天翻了下网络上的资料,在lua的wiki上看到一篇比较lua和python的文章,草草地翻译出要点:

Python:

1. 扩展库很多,资料很多

2. 数值计算比较强大,支持多维数组,而lua没有数组类型

3. 本身带的c类型(?)支持处理动态链接库,不需要进行C封装(C扩展)

4. 远程调试器,似乎lua扩展工具支持

5. 自然语言似的语法

6. 对于string和list的支持,lua可以通过扩展库实现

7. 对unicode的支持

8. 空格敏感(代码不忽略空格),这其实可以使python的代码风格看起来更好一点

9. 内建位操作,lua可以通过扩展库支持

10.语言本身对错误的处理要好些,可以有效减少程序错误

11.初级文档比lua多

12.对面向对象支持更好

Lua:

1. 比python小巧很多(包括编译出来的运行时库)

2. 占用更小的内存

3. 解释器速度更快

4. 比python更容易集成到C语言中

5. 对于对象不使用引用计数(引用计数会导致更多的问题?)

6. lua早期定位于一种配置语言(作为配置文件),因此比起python来更容易配置数据

7. 语言更漂亮(nice)、简单(simple)、强大(powerful)。

8. lua支持多线程,每个线程可以配置独立的解释器,因此lua更适合于集成进多线程程序

9. 对空格不敏感,不用担心编辑器会将tab替换成空格

Useful Comments:

1. Everything is an object allocated on the heap in Python, including numbers. (So 123+456 creates a new heap object).

2. lua对于coroutine的支持更适用于嵌入进游戏,虽然python也有,但是并没有包含进核心模块

3.Python was a language better suited to Game AI

本来想去找点对于python的正面资料(嵌入进游戏这方面),但是居然没找到。客观地说如果单独用python做应用,python还是很有优势。现在心意已决,应该向leader推荐lua。

ps,希望能补充以上两种语言的特点。

lua和python哪个适合小白

python更适合小白,python方便好用的slice操作,lua就没有。

lua的初衷本就是是作为一个嵌入式语言,为了这个目的,它的一切都是减无可减,拿来写大点儿的东西,就会感觉老是要自己发明轮子。比如,python方便好用的slice操作,lua就没有。python3的好处就是轮子基本上都发明好了,而且语言本身也有一堆语法糖让你用起来方便快捷。但是如果项目需要一个嵌入式脚本引擎的话,我还是会选择lua的。

python 如何实现类似lua中的 a = a or 0,即第一次声明a的时候就已经可以使用此语法了。在python中会报错

这是lua的语法or and的特殊之处

a and b 若a为真 则返回b 若a为假 则返回a本身

a or b 若a为真 则返回a 若a为假 则返回b

所以 c = a or b 对应的python语句是

if a:

c = a

else:

c = b

python很久没用了 不知道有没记错

游戏脚本语言,是不是lua超越python了

哪个语言好 哪个语言不好 都是不客观的,片面的

但是在实际应用上lua确实比python更加普遍,只是因为更适合

lua本身的定位 就是嵌入其他程序,完成一部分的逻辑的功能 而本身不提供强大的机制,因此lua本身就只有200K左右

而python的定位则完全相反,python需要能独立完成所有工作,因此它的定位是大而全,不同于小而精的lua,它的大小 有好几十M,这样的大小,对于大部分的游戏而言,不能被接受,所以lua使用的更多

Ruby,Perl,Python,Lua等语言相互之间都有哪些异同点

本文从RoR对Ruby的影响、Ruby的优势等多个角度分析了Ruby比Python成功的原因。伴随着RoR的风行,Ruby语言受到越来越多的开发者的关注,同为脚本语言,Python的地位却略显尴尬,什么样的原因,造成了这样的局面?笔者认为有以下几个方面:一、RoR的推波助澜笔者认为,Ruby的成功,很大一部分是由于RoR的带动。几年前,如果你没听过RoR倒是情有可原,但如果今天,RoR对你来说,还是一个陌生词汇的话,那你就有点危险了。:)什么是RoR呢?全称,RubyonRails,简称,RoR或者Rails。它是个全栈的(full-stack)web应用框架,它为开发者提供了构建一个web应用所需的完整基础结构,并且严格按照MVC(模型-视图-控制器)架构进行开发。RoR致力于提高开发者的开发效率,希望通过尽量少的代码,完成尽可能多的功能。基于这样的考虑,RoR有两大设计原则,一是,不要重复自己(Don''tRepeatYourself);二是,惯例优于配置(ConventionOverConfiguration)。使用RoR,你甚至可以通过简单的几条命令行、几行代码,就完成一个功能强大的web应用程序,这极大地提高了开发者的开发效率。2004年7月,RoR一经发布,在短期内,便受到很多开发者的追捧。时至今日,RoR已经被全世界的开发者们所关注,它带给开发者的效率提升,是前所未有的;它带给业界关于软件开发的思考,也是意义深远的。在RoR如此风行的大背景下,RubyonRails,这个需要使用Ruby进行开发的web框架,也自然地带动了Ruby语言的发展。在下面的“Ruby语言受关注程度趋势图”上,可以清晰地看出,Ruby语言在RoR发布也就是2004年7月后,进入了高速发展期。Ruby因为有了RoR这样的“杀手级”应用,变得春风得意,那么Python呢?在《浅谈Python语言》一文中,我们提到了Python具有丰富的API库,在web开发方面,也有Django、Turbogears这样的一些框架,就运行速度而言,Python比Ruby快;就社区而言,Python也比Ruby成熟,可是为什么Python没有产生一个像RoR这样的“杀手级”应用呢?Python语言的创始人Guido在接受InfoQ采访时,是这样解释的:“我不喜欢KillerApplication,因为那会让多数人或者社区将精力集中于一个地方。Python是一个应用广泛的语言,基于Python已经产生了很多好用的Web框架,比如Django等。但是Python不KillerApplication,至少目前是这样,而且我相信随着Python社区的发展,会有很多KillerApplications自然出现。我喜欢多样化的应用。”通过这个观点,我们可以看出Python在其发展道路上,追求的是一种均衡,一种“大而全”。“会有很多KillerApplications自然出现”,这点,我想我们需要拭目以待。单就“均衡”而言,笔者认为这很危险,作为一门脚本语言,试图做Java之类传统语言做的事情,不太可取。以Java为例,在web应用上,有太多的框架可供选择,不错,“在不同的场景用不同的框架”,这想法很好。可是,在实际应用中,有多少开发者可以根据项目特点,正确、合理地选择框架?与其到最后,用户还不知道该如何选择,还不如一开始就替用户做出一个选择。作为Python的使用者,我更愿看到有个Python的“杀手级”应用出现,进而带动Python更快速地发展。你可以说RoR成就了Ruby,可是Rails为什么偏偏选择了Ruby?!Ruby优势何在?二、Ruby的优势1.比Perl更强大,比Python更面向对象“比Perl更强大,比Python更面向对象”,这是Ruby创始人Matz设计Ruby的初衷。Python既支持面向过程的编程也支持面向对象的编程,而Ruby则是完全面向对象。在Ruby中,任何东西都是对象,包括Python中的基本数据类型;每个过程或函数都是方法。例如,取-3的绝对值,在Python中,是这样的:abs(-3)。而在Ruby中,则是这样的:-3.abs。这种OO的方式,显得更加直观。2.强大的语法功能单就语法的简单性而言,Ruby不及Python。但解决一些较复杂的问题,Ruby强大的语法功能,有助于降低问题的复杂度。例如:Ruby以“块”的方式来实现列表内的条件、循环语句,比Python的更灵活、更具通用性。Ruby具有类似Lisp的彻底的函数方式的条件、循环语句等。Ruby的迭代器功能可以将流程控制结构抽象化。3.强大的字符串处理、正则表达式功能Matz认为:Ruby(Smalltalk+Perl)/2。Ruby类库是对Perl语言功能的面向对象方式的重组,因为借鉴了很多Perl的东西,使得字符串处理、正则表达式这块,Ruby同样强大。4.不会僵住的“胶水语言”同样是“胶水语言”,Ruby比Python更灵活。使用过一段时间的Python,你会发现,Python比较依赖第三方的东西。相比较,Ruby则更依赖自身。例如,Ruby可以使用(UNIX的)绝大部分的系统调用,单独使用Ruby也可以进行系统编程等。有优势,Ruby就一定可以成功了?Python同样也有很多优势!对,还得看当时所处的环境。三、时势造英雄这点还得回到RoR的崛起。Ruby,1995年12月正式发布,2000年进入美国;2004年7月,RoR正式发布。RoR的出现时间,值得玩味。在下面的“Java语言受关注程度趋势图”上,可以看到,2004年7月前后,Java处于一个相对“衰退期”。提到Java,大家应该都会想到J2EE。J2EE应用程序的广泛实现是从1999、2000年开始的,它的出现带来了诸如事务管理之类的核心中间层概念的标准化,但是因其开发效率、学习难度和实际性能的问题,在实践中没有获得完全的成功。作为J2EE核心技术的EJB(2.x),更是因其高昂的学习代价、极低的开发效率和极高的资源消耗,备受指责。在这样一个大背景下,2003年,Spring框架诞生了。Spring的设计思想在于“使J2EE开发更加简单”。这个设计思想,在包括Java领域在内的众多软件开发领域引起了广泛关注。软件开发者们开始思考,如何让开发向着一个更简单的方向发展。RoR在这一时期出现,无疑是顺应了这样一个潮流。可以这么说,是历史选择了RoR,当然也选择了Ruby。遇到合适的机遇,还不够,俗话说得好:“众人拾柴火焰高”。四、众星捧月Ruby的出现,受到了两大主流平台Java和.NET的极力追捧。2006年9月,SUN雇佣了JRuby的主要开发者CharlesNutter和ThomasEnebo;一年不到,2007年6月14号,JRuby1.0正式发布。SUN在其JavaIDENetBeans6.0M10中,更是集成了对Ruby/JRuby的支持。反观Python的Java实现——Jython,则没有这么幸运,发展至今,它并没有得到SUN的支持。而Microsoft,也在2007年7月,推出了Ruby的.NET实现——IronRuby的预览版。相信SUN和Microsoft对Ruby的竞相推崇,必然推动Ruby的进一步发展。基于以上几点,笔者认为Ruby的成功不是偶然,并且相信这样的成功还会持续下去。对于Python的未来,我们也将拭目以待。

结语:以上就是首席CTO笔记为大家介绍的关于lua和python语法有多少相似的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/20797.html