设为首页 收藏本站
查看: 850|回复: 0

[经验分享] 为什么我们要用Python

[复制链接]

尚未签到

发表于 2015-12-2 14:13:46 | 显示全部楼层 |阅读模式
        最近有一个朋友问我:为什么我要用Python,这是一个好问题,今天有空,把这个问题简单整理了一下,回来朋友的问题。该整理主要来源于网络和其他资料,如果有侵权还请告知。
        Python的好处主要有以下几种(来源自《集体智慧编程》英文版《Programming Collective Intelligence Building Smart Web 2.0 Applications》这本书:
        简练

            使用像Python这样的动态类型语言编写的代码往往比用其他主流语言编写的代码更加简短。这意味着,在完成示例的过程中会有更少的录入工作,而且这也意味着我们将更容易记住算法并真正领会算法的原理。
        易于阅读

            Python不时被人们指为“可执行的伪代码”。虽然很明显这是夸大之词,但是它表明,大多数有经验的程序员可以读懂Python代码并领会代码所要表达的意图。
        易于安装

            不管是Windows,Linux还是Mac系统,只要配置好Python的环境,只需要easy_install  XX或者pip install XX 就可以安装所需要的第三方扩展包。当然,对于Windows 64bit的操作系统来说,可能稍微麻烦一点,有些会出现兼容性问题,不过也都可以找到相应的解决方案。
        易于扩展

            Python附属了很多的标准库,这些涉及数据函数,XML解析,以及网页下载(笔者注:Python的BeautifulSoup是笔者见过的做好的HTML/XML解析工具之一,速度快,文档例子非常多),RSS解析,SQLLite等等
        交互性

            Python可以直接从命令行运行程序,它还有交互提示,允许我们键入函数调用,创建对象,并以交互的形式对包进行测试。

        多范式

            Python支持面向对象,过程式和函数式的编程风格。机器学习算法千差万别,最为清晰的做法是针对不同算法采用不同的范式。有时将函数作为参数传入很有用处,而有时我们则需要再对象中捕获状态。对于这两种方式,Python都比较好的予以支持。

        多平台和开源免费

            Python有一个针对所有主流平台的单一参考实现,并且对所有的平台都是免费的。Linux和Mac系统一般都是自带Python的环境。Windows需要自行安装,从visual studio 2013开始,微软平台也开始支持Python的开发功能。

       
        在这里还有一个需要格外注意的事情,对于Python来言,Python 解释器不是完全线程安全的。在Python 多线程当中,存在一个叫Global Interpreter Lock(GIL)的东西,直译就是全局解释器锁。它的作用在于让同一时刻只能有一个线程对于python对象进行操作。Python已经提供了各种机制让我们进行多线程同步,为什么又要整这个GIL呢?这是因为程序员控制的同步是对各个程序中可见的变量,而GIL同步的是解释器后台的不可见变量,比如为了进行垃圾回收而维护的引用计数。如果没有GIL,有可能出现由于线程切换导致的对同一个对象释放两次的情况。这点需要格外注意。
       

        关于为什么要用Python也可以参照如下的两篇博客描述

        为什么要使用Python:http://blog.csdn.net/caimouse/article/details/41550045
        为什么我们要用Python:http://www.cnblogs.com/huxi/archive/2010/12/19/1910425.html
        Python 论优缺点:http://www.cnblogs.com/xupeizhi/archive/2012/07/21/2602861.html
        Python线程状态和全局解释器锁:http://blog.csdn.net/cglover/article/details/2566450


        额外追加一张Python与Java的一个实现对比:

        来源网站:http://spark.apache.org/examples.html
        DSC0000.png

    DSC0001.png

       

       

       


来自为知笔记(Wiz)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-146395-1-1.html 上篇帖子: 2015/8/9 到家了,学完了CodeCademy的Python 下篇帖子: python 中的 re.compile 函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表