您好,登录后才能下订单哦!
这篇文章主要介绍“用Python语言入行好吗”,在日常操作中,相信很多人在用Python语言入行好吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”用Python语言入行好吗”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
首先得提一下Python语言和Python实现之间的关系。计算机语言本身可以说是一个规范,一个很好的例子就是Scheme。R5RS就是Scheme语言的一个规范文档,这里基本上规定了语言的规则,语法等方方面面。但是光有文档肯定还是不行的,所以就会有人根据语言的规范来实现一个能用的语言编译器或者解释器。对于Python来说,其语言的规范在文档里的ThePythonLanguageReference。而我们常用的Python常常被称为CPython,这是官方提供的,也是使用最广泛的一个实现。事实上Python作为一个流行的语言还有着很多不同的实现。下面会介绍一些其他的Python实现,和一些Python衍生的语言。
如果你经常关注Python相关的新闻那你一定看到过PyPy。概括的讲它的目标是实现一个与Python完全兼容但速度要快很多的Python实现。在官方提供的评测页面中,你可以看到现在PyPy比CPython要快5倍左右。然而它自身也有一个很麻烦的问题就是PyPy不兼容C扩展,这也是它一直以来难以得到普及的一个原因。
对于我等一般用户来说,PyPy已经算是相当成熟了。现在的PyPy2.0是一个与Python2.7兼容的版本,其中绝大部分标准库的内容都是可以使用的,而且大部分纯Python库也没有问题。官方现在提供包括Windows的各种版本的包裹下载。你可以自己尝试下使用PyPy有没有使你的程序跑的更快。如果可以的话那你就完全不费力气的获得了性能的提升,这也是PyPy项目吸引人的地方之一。
另一方面PyPy本身也提供了一套开发语言解释器的框架。官方博客有一篇文章介绍了如何编写一个简单Brainfuck解释器。
IronPython是微软.Net平台上的一个Python实现。事实上这基本上算是来自微软的一个开源项目,其所使用的DLR也是.Net4.0中一个新的重要功能。
由于工作的原因我之前试着用了下IronPython,感觉真是...惊呆了。如果试过在C/C项目中嵌入Lua或者其他脚本语言的经验,你会觉的要能让他正常的跑起来其实还是挺难的。起码你自己要处理将C的函数或者C的Class暴露到脚本语言中,处理脚本中的异常等等。总之就是挺麻烦。
但如果是用IronPython那基本上那你要操心的事情就非常少了。像Class都可以直接暴露给IronPython,C#可以直接接到IronPython中的异常,也可以很容易的取得IronPython中的值或者Class。而且IronPython可以很简单的使用.Net中的类,事实上你都可以用IronPython来写WinForms程序。总而言之,就是太方便了。
在效率方面的话其实IronPython跟CPython没有太大区别。但是如果你是.Net开发者的话一定得看看IronPython。说不定就有机会用到。
相对于.Net平台,在Java上也有对应的Jython项目。不过这个我完全没有用过所以没什么可以说的。
"在Python中性能不够的地方,你可以用C语言来重写从而提升效率"-我估计你应该在哪里看到过类似的说法。但这个到底应该怎么做呢?要用C语言来重写Python模块说实话是个挺麻烦的事情。好消息是Cython就是针对这个问题的一个项目。Cython提供了一个类似Python的强类型语言,Cython可以将其编译为C的代码,然后你可以很轻松的将其编译成Python的C扩展.pyd文件。pyd文件在Windows下其实就是dll,如果使用Cython的话你就可以省去很多麻烦的事情。
但是坏消息是所有扯到C语言的东西在Windows上都显得非常麻烦。Cython的配置也相对比较复杂。好消息是你还是可以通过安装超牛逼的PythonXY来把所有事情都搞定。
跟目标Cython类似的,调用C/C原生代码扩展的框架还有cffi,swig以及标准库中的ctypes。
Python已经成为全球前五大流行编程语言之一,未来人工智能时代将是Python的天下,学习Python是时代给予的机会,抓住机会,成就人生。
到此,关于“用Python语言入行好吗”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。