Python新手入门介绍

浏览: 3008

第一部分:关于Python不得不说的故事

什么是Python

        Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

        Python是纯粹的自由软件, 源代码解释器CPython遵循 GPL(GNU General Public License)协议

        Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[2]  有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

         以上内容来自百度百科,参考地址如下:http://baike.baidu.com/link?url=KeDN0gKlhXXo_eq_wEogBVvPU09vZeLhtD8ll2cXw6Cnke5svjLrLH7StpipQ-HC-wUnjO_fkVFfwxb_-Tcweq#reference-[5]-21087-wrap

Python的哲学

        在python中输入:import this,我们会看到python的哲学

import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.      
Sparse is better than dense.     
Readability counts.          
Special cases aren't special enough to break the rules.
Although practicality beats purity.   
Errors should never pass silently.   
Unless explicitly silenced.          
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
 
优美胜于丑陋
明了胜于晦涩
简单胜过复杂
复杂胜过凌乱
扁平胜于嵌套
间隔胜于紧凑
可读性很重要
即使假借特例的实用性之名,也不违背这些规则
虽然实用性次于纯度
错误不应该被无声的忽略
除非明确的沉默       
当存在多种可能时,不要尝试去猜测
应该有一个,最好只有一个,明显能做到这一点
虽然这种 方式可能不容易,除非你是python之父
现在做总比不做好
虽然过去从未比现在好
如果这个实现不容易解释,那么它肯定是坏主意
如果这个实现容易解释,那么它很可能是个好主意
命名空间是一种绝妙的理念,应当多加利用

        这个哲学听起来很像圣经里面的赞美诗,实际上也确实是这样,Python非常棒,请尽情的赞美它!

Python的口号

        人生苦短,我用python

        

         python的开发效率非常高,而且是有强制的缩进,使得不管是写代码的人还是看代码的人都非常清楚(就好似写诗一样,写一段换一行)。人生只有短短几十年,开发效率低就是等于在浪费生命,做不完我想做的事,用python吧!它能让你在有限的生命里干完你想干的事儿:)。

为什么要用python:

        简练

        使用像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: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

          

       

    

        我们可以看到,只需要三行代码,python就实现了一个清晰,明了的word count实现。

        已经有越来越多的人感受到了生命的可贵,并且加入到了Python的阵营中:

        2016年4月TIOBE编程语言排行榜:

          

Python的学习版本

        python主要分为python2.x和python3.x版本,针对python2.x,python3.x有一个非常重要的升级,就是Unicode的编码问题。

        推荐使用python2.x版本,主要是基于以下的几点:

        1.python2.x目前应用最广,很多公司的系统都还比较老,还没有进行较大规模的升级,因此还在使用python2.x版本。

        2.非常多的第三方lib包还在使用python2.x版本,还没有升级到python3.x版本。

       3.很多的内部公司的操作系统,比如centos6.x系列,默认是安装的python2.6,在公司内部网络里,我们也可以轻松使用python进行编程。

Python的学习推荐:

        很多同学都比较喜欢看书,我们先来推荐几本书:

        入门篇:

        1.《Python基础教程》 出版社:人民邮电出版社

           

         2.《Python入门经典》 出版社: 机械工业出版社

                 

         3.《深入浅出 Python(中文版)》出版社: 中国电力出版社

                   

        提高:

         1.《Python Cookbook(第3版)中文版》出版社: 人民邮电出版社

                

         2.《Python核心编程(第2版)》中文 《Core PYTHON Programming》 出版社: 人民邮电出版社

                  

        专业:

            1.《集体智慧编程》出版社: 电子工业出版社

                

            2.《利用Python进行数据分析》中文 出版社: 机械工业出版社   《Python for Data Analysis》英文

                   

            3.《Python自然语言处理》出版社: 人民邮电出版社

                   

        下面来介绍几个学习的网站:

      天善社区-Python专区:http://www.flybi.net/category/47

                廖雪峰的官方网站-Python教程:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

                GitHub:各类开源软件的大本营,包含非常多的Python第三方包及使用教程,说明

         再来两个比较好的Python微信公共号:

      Python开发者(PythonCoder)

      Python程序员

推荐 10
本文由 牟瑞 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

3 个评论

感谢牟老师
等着老师明天分享
对新手来说,太有帮助了,赞一个

要回复文章请先登录注册