> The fear of the LORD is the beginning of knowledge; fools despise wisdom and instruction.(PROVERBS 1:7)
>敬畏耶和华是知识的开端,愚妄人藐视智慧和训诲。
#关于Python的故事
我已经在[《零基础学Python(第一版)》](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/index.md)中写了一个专门讲述Python故事的——[唠叨一些关于Python的事情](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/001.md)——章节,今天再写类似的标题,不打算完全重复原来的,只是把部分认为重要的或者不可或缺的东西复制过来。
原来写了第一版,现在又写第二版,显然是对第一版不满意。不满意在哪里呢?
- 第一版的有些知识阐述还不完善,也有不严谨之处,当然,第二版也会有,但试图修正
- 第二版较第一版,在内容上要进行大幅度扩展
总之,第二版要有优于第一版的地方,所以,请读者还是阅读此版。
##越来越火的Python
在前几年(before 2011),我跟一些朋友介绍python的时候,看到的常常是一种很诧异的眼神,通常会听到:
“那时什么东西?”
“解释性语言会不会很慢?”
“没听说谁用呀?”
“能像php,java,c#那样用来做网站吗?”
“什么?你说的是pascal?你还在用这个老古董?”
“哦,我听说过,有一些老外在用,不过我们这还没有人用呢。”
时过境迁,现在已经有了很大变化。
2014年初,我开始写《零基础学Python》系列,就得到了很多朋友的支持,而且吸引了不少学习Python的朋友,特别是在我的那个QQ群里面,集中了不少学习者和爱好者,当然也有高手深藏不露。
获得我发布的有关Python信息途径:
1. 加入QQ群,里面可以跟很多人交流。QQ群:Code Craft:26913719
2. 关注我的新浪微博,名称是:老齐Py。地址:http://weibo.com/qiwsir
3. 到github.com上直接follow我,名称是:qiwsir。地址:https://github.com/qiwsir
4. 经常关注我的网站:www.itdiffer.com
特别是2015年一开始,在QQ群(26913719)里面,就有朋友说,他在上海找工作,看到好多公司都要有Python开发经验的。也有朋友委托我推荐Python程序员的。
从我自己的经历中也感受到,用Python的领域越来越多,找Pythoner的公司和机构也越来越多了。
所以,学习Python,挺好(包括女生,也是“挺”好)。更何况,Python还是适合于更多领域的语言,学习者可以涵盖从小学生到大学生,应用领域更是覆盖了从web开发到GUI,在大数据、机器学习等这些领域,更是独树一帜。推荐阅读[《大数据全栈式开发语言 – Python》](http://insights.thoughtworkers.org/full-stack-python/)。
所以,学习Python性价比最高,划算。
但是,有一个在我来看不是问题,但是在很多初学者来看,是一个天大问题:是学习Python 2还是学习Python 3?
##Python的版本
不管出于什么原因,我认为Python给自己搞了两个版本,是败笔。
虽然如此,但幸亏两个版本并非天壤之别,绝大部分是一样的。所以,学习者可以选择任何一种版本进行学习,然后在具体应用的时候,用到什么版本,只要稍加注意,或者到网上搜索一下,即可。
我在这里还整理了一篇文章:[Python2.7.x和3.x版本的重要区别](https://github.com/qiwsir/StarterLearningPython/blob/master/n005.md),不知是否愿意阅读?
但是,总有不放心的初学者。
我曾被无数次的拷问:教程是Python 2还是Python 3?
我非常想告诉他什么都支持,但是,我的代码的确是在Python 2下调试的,总不能撒谎吧。于是当我如实奉告的时候,他会说要学习Python 3,转头找那些号称是Python 3的教程。
无奈。
为了迎合学习者胃口,我的教程,**从即日起,逐渐修改代码,适合于Python 3**。
从此,本教程宣称:**支持Python 2和Python 3**。如遇到不符合此宣称的地方,是因为还没有修改到那里呢。
还要说一句,上述宣称的最终解释权归本教程作者。
不管是2还是3,总要从零开始学习,从零开始学,就意味着不需要基础。这个我有信心。
##需要什么基础吗
这是很多初学者都会问的一个问题。诚然,在计算机方面的基础越好,对学习任何一门新的编程语言,都是更有利的。如果,你在编程语言的学习上属于零基础,也不用担心,不管用哪门语言作为学习编程的入门语言,总要有一个开始吧。
就我个人来看,Python是比较适合作为学习编程的入门语言的(作为学习编程的入门语言,我现在最不理解的是用C,因为很多曾经立志学习编程的人学了C语言之后,才知道自己不适合编程。难道是用C来筛选这个行业的从业者吗?)。总之,不用担心自己的所谓基础问题。
看我这个教程的标题,就是强调“零基础”的。
不仅我这么认为,美国有不少高校也这么认为,纷纷用Python作为编程专业甚至是非编程专业的大学生入门语言。
最后的结论是:学习python,你不用担心基础问题。
**特别是看我的教程,我的目标就是要跟你一起从零基础开始,直到高手境界**。
所以,尽管放胆来学,不用犹豫、不要惧怕。还有一个原因,是因为她优雅。
##优雅的Python
Python号称是优雅的。但是这种说法仁者见仁智者见智。比如经常听到大师们说“数学美”,是不是谁都能体验到呢?不见得吧。
所以,是不是优雅,是不是简单,是不是明确,只有“谁用谁知道”,只有内行人才能理解。
不过,我特别喜欢下面这句话:**人生苦短,我用Python**。意思就是说,Python能够提高开发效率,让你短暂的人生能够除了工作之外,还有更多的时间休息、娱乐或者别的什么。
或许有的人不相信,那就比较一下吧。
##跟别的语言比较
“如果你遇到的问题无法用Python解决,这个问题也不能用别的语言解决。”——这是我向一些徘徊在Python之外的人常说的,是不是有点夸张了呢?
最近看到了一篇文章,[《如果编程语言是女人》](http://www.vaikan.com/if-programming-languages-are-woman/),我转载如下(考虑到篇幅所限,所了适当删改,要阅读非删减版,请通过连接查看原文):

>PHP是你的豆蔻年华的心上人,她是情窦初开的你今年夏天傻乎乎的追求的目标。玩一玩可以,但千万不要投入过深,因为这个女孩有严重的问题。
>Ruby是脚本家族中一个非常漂亮的孩子。第一眼看她,你的心魄就会被她的美丽摄走。她还很有有趣。起初她看起来有点慢,不怎么稳定,但近些年来她已经成熟了很多。
>Python 是Ruby的一个更懂事的姐姐。她优雅,新潮,成熟。她也许太过优秀。很多小伙都会说“嘿,兄弟,你怎么可能不爱上Python呢!?”。没错,你喜欢Python。你把她当成了一个脾气和浪漫都退烧了的Ruby。
>Java是一个事业成功的女人。很多在她手下干过的人都感觉她的能力跟她的地位并不般配,她更多的是通过技巧打动了中层管理人员。你也许会认为她是很有智慧的人,你愿意跟随她。但你要准备好在数年里不断的听到“你用错了接口,你遗漏了一个分号”这样的责备。
>C++ 是Java的表姐。她在很多地方跟Java类似,不同的是她成长于一个天真的年代,不认为需要使用“保护措施”。当然,“保护措施”是指自动内存管理。你以为我指的是什么?
>C 是C++的妈妈。对一些头发花白的老程序员说起这个名称,会让他们眼睛一亮,产生无限回忆。
>Objective C C语言家族的另外一个成员。她加入了一个奇怪的教会,不愿意和任何教会之外的人约会。
虽然是娱乐,或许有争议,权当参考吧。
所以,Python值得拥有。
在正式开始学习之前,首先要告诉你成为Python高手的秘诀。
##The Zen of Python
这就是著名的《Python之禅》。
>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,我们一定要感恩并崇拜。
##感谢Guido van Rossum
Guido van Rossum 是值得所有pythoner感谢和尊重的,因为他发明了这个优雅的编程语言。他发明python的过程是那么让人称赞和惊叹,显示出牛人的风采。
>1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个蒙提·派森的飞行马戏团的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并取得了非常好的效果,完美结合了C和其他一些语言。
这段故事的英文刊载在:[https://www.python.org/doc/essays/foreword/](https://www.python.org/doc/essays/foreword/)
Python已经让人心动了。除了心动,还要行动;只有行动,才能“从小工到专家”。
-------
[总目录](./index.md) | [下节:从小工到专家](./02.md)