Skip to content

Latest commit

 

History

History
182 lines (96 loc) · 10.5 KB

01.md

File metadata and controls

182 lines (96 loc) · 10.5 KB

The fear of the LORD is the beginning of knowledge; fools despise wisdom and instruction.(PROVERBS 1:7)

敬畏耶和华是知识的开端,愚妄人藐视智慧和训诲。

#关于Python的故事

我已经在《零基础学Python(第一版)》中写了一个专门讲述Python故事的——唠叨一些关于Python的事情——章节,今天再写类似的标题,不打算完全重复原来的,只是把部分认为重要的或者不可或缺的东西复制过来。

原来写了第一版,现在又写第二版,显然是对第一版不满意。不满意在哪里呢?

  • 第一版的有些知识阐述还不完善,也有不严谨之处,当然,第二版也会有,但试图修正
  • 第二版较第一版,在内容上要进行大幅度扩展

总之,第二版要有优于第一版的地方,所以,请读者还是阅读此版。

##越来越火的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》

所以,学习Python性价比最高,划算。

但是,有一个在我来看不是问题,但是在很多初学者来看,是一个天大问题:是学习Python 2还是学习Python 3?

##Python的版本

不管出于什么原因,我认为Python给自己搞了两个版本,是败笔。

虽然如此,但幸亏两个版本并非天壤之别,绝大部分是一样的。所以,学习者可以选择任何一种版本进行学习,然后在具体应用的时候,用到什么版本,只要稍加注意,或者到网上搜索一下,即可。

我在这里还整理了一篇文章:Python2.7.x和3.x版本的重要区别,不知是否愿意阅读?

但是,总有不放心的初学者。

我曾被无数次的拷问:教程是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之外的人常说的,是不是有点夸张了呢?

最近看到了一篇文章,《如果编程语言是女人》,我转载如下(考虑到篇幅所限,所了适当删改,要阅读非删减版,请通过连接查看原文):

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/

Python已经让人心动了。除了心动,还要行动;只有行动,才能“从小工到专家”。


总目录   |   下节:从小工到专家