Skip to content

Commit 09b005e

Browse files
committed
First commit
0 parents  commit 09b005e

File tree

391 files changed

+124241
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

391 files changed

+124241
-0
lines changed

001.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
>Then God said: "Let there be light"; and there was light. And God saw that the light was good; and God separated the light from the darkness.
2+
3+
#唠叨一些关于Python的事情
4+
5+
如同学习任何一种自然语言比如英语、或者其它编程语言比如汇编(这个我喜欢,可惜多年之后,已经好久没有用过了)一样,总要说一说有关这种语言的事情,有的可能就是八卦,越八卦的越容易传播。当然,以下的所有说法中,难免充满了自恋,因为你看不到说Python的坏话。这也好理解,如果要挑缺点是比较容易的事情,但是找优点,不管是对人还是对其它事务,都是困难的。这也许是人的劣根之所在吧,喜欢挑别人的刺儿,从而彰显自己在那方面高于对方。特别是在我们这个麻将文化充斥的神奇地方,更多了。
6+
7+
废话少说点(已经不少了),进入有关python的话题。
8+
9+
##Python的昨天今天和明天
10+
11+
这个题目有点大了,似乎回顾过去、考察现在、张望未来,都是那些掌握方向的大人物(司机吗?)做的。那就让我们每个人都成为大人物吧。因为如果不回顾一下历史,似乎无法满足学习者的好奇心;如果不考察一下现在,学习者不放心(担心学了之后没有什么用途);如果不张望一下未来,怎么能吸引(也算是一种忽悠吧)学习者或者未来的开发者呢?
12+
13+
##Python的历史
14+
15+
Python的创始人为吉多·范罗苏姆(Guido van Rossum)。关于这个人开发这种语言的过程,很多资料里面都要记录下面的故事:
16+
17+
>>1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个蒙提·派森的飞行马戏团的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并取得了非常好的效果,完美结合了C和其他一些语言。
18+
19+
这个故事我是从维基百科里面直接复制过来的,很多讲python历史的资料里面,也都转载这段。但是,在我来看,这段故事有点忽悠人的味道。其实,上面这段中提到的,吉多为了打发时间而决定开发python的说法,来自他自己的这样一段自述:
20+
21+
>>Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office (a government-run research lab in Amsterdam) would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python's Flying Circus).(原文地址:https://www.python.org/doc/essays/foreword/)
22+
23+
首先,必须承认,这个哥们儿是一个牛人,非常牛的人。此处献上我的崇拜。
24+
25+
其次,做为刚刚开始学习python的朋友,可千万别认为python就是一个随随便便就做出来的东西,就是一个牛人一冲动搞出来的东西。人家也是站在巨人的肩膀上的。
26+
27+
第三,牛人在成功之后,往往把奋斗的过程描绘的比较简单,或者是谦虚?或者是让人听起来他更牛?反正,我们看最后结果的时候,很难感受过程中的酸甜苦辣。
28+
29+
不管怎么样,牛人在那时刻开始创立了python,而且,他更牛的在于具有现代化的思维:开放。通过Python社区,吸引来自世界各地的开发者,参与python的建设。在这里,请读者一定要联想到Linux和它的创始人芬兰人林纳斯·托瓦兹。两者都秉承“开放”思想,得到了来自世界各地开发者和应用者的欢呼和尊敬。也请大家再联想到另外一个在另外领域秉承开放思想的人——邓小平先生,他让一个封闭的破旧老水车有了更新。
30+
31+
请列位多所有倡导“开放”的牛人们表示敬意,是他们让这个世界更美好了。他们以行动诠释了热力学第二定律——“熵增原理”。
32+
33+
##Python的现在
34+
35+
有一次与某软件公司一个号称是CTO的人谈话,他问我用什么语言开发,我说用Python,估计是我的英语发音不好吧(我这回真的谦虚了一把),他居然听成了Pascal(也是一种高级语言,现在很少用了,曾经是比较流行的教学语言)。呜呼,Python是小众吗?不是,是那家伙眼界不开阔!接触过不少号称CTO的,多数是有几年经验的程序员,并没有以国际视野来看待技术,当然,大牛的CTO还是不少的。总之,不要被外表忽悠了,“不看广告,看疗效”。
36+
37+
首先看一张最近一期的编程语言排行
38+
39+
![](../Pictures/python1.png)
40+
41+
python在这个榜单中第8,也许看官心理在想:为什么我不去学那个排第一呢?如果您是一个零基础的学习者,我以多年的工作和教学经验正告:还是从入门比较容易的开始吧,python是这样的。等以后,完全可以拓展到其它语言。或许你又问了,php和vb是不是可以呢?他们排名比python靠前。回答是:当然可以。但是,学习一种入门的语言,要多方考虑,或许以后你就不想学别的,想用这个包打天下了,那就只有python。并且,还得看下面的信息:
42+
43+
>>根据Dice.com一项网上对20000名IT专业人士进行调查的结果 :
44+
>>java类平均工资:91060美元;
45+
>>python类平均工资:90208美元;
46+
47+
不错,python程序员平均来讲,比java平均工资低,但看看差距,再看看两者的入门门槛,就知道,学习python绝对是一个性价比非常高的投资啦。
48+
49+
Python就是这样,默默地拓展着它的领域。
50+
51+
##Python的未来
52+
53+
未来,要靠列为来做了,你学好了,用好了,未来它就光明了。它的未来在你手里。
54+
55+
##Python的特点
56+
57+
很多高级语言都宣称自己是简单的、入门容易的,并且具有普适性的。真正做到这些的,不忽悠的,只有Python。有朋友做了一件衬衫,上面写着“生命有限,我用Python”,这说明什么?它有着简单、开发速度快,节省时间和精力的特点。因为它是开放的,有很多可爱的开发者(为开放社区做贡献的开发者,是最可爱的人),将常用的功能做好了,放在网上,谁都可以拿过来使用。这就是Python,这就是开放。
58+
59+
抄一段严格的描述,来自维基百科:
60+
61+
>>Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符,因此Python也支持泛型设计。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。
62+
63+
>>虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发项目例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shell script、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。
64+
65+
>>Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004年,Python已在Google内部使用,Google召募许多Python高手,但在这之前就已决定使用Python。他们的目的是尽量使用Python,在不得已时改用C++;在操控硬件的场合使用C++,在快速开发时候使用Python。”
66+
67+
可能里面有一些术语还不是很理解,没关系,只要明白:Python是一种很牛的语言,应用简单,功能强大,google都在使用。这就足够了,足够让你下决心学习了。
68+
69+
##python哲学
70+
71+
Python之所以与众不同,还在于它强调一种哲学理念,用黑字表示强调吧:
72+
73+
**Python的设计哲学是“优雅”、“明确”、“简单”。**
74+
75+
Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。
76+
77+
##The Zen of Python
78+
79+
Beautiful is better than ugly.
80+
Explicit is better than implicit.
81+
Simple is better than complex.
82+
Complex is better than complicated.
83+
Flat is better than nested.
84+
Sparse is better than dense.
85+
Readability counts.
86+
Special cases aren't special enough to break the rules.
87+
Although practicality beats purity.
88+
Errors should never pass silently.
89+
Unless explicitly silenced.
90+
In the face of ambiguity, refuse the temptation to guess.
91+
There should be one-- and preferably only one --obvious way to do it.
92+
Although that way may not be obvious at first unless you're Dutch.
93+
Now is better than never.
94+
Although never is often better than *right* now.
95+
If the implementation is hard to explain, it's a bad idea.
96+
If the implementation is easy to explain, it may be a good idea.
97+
Namespaces are one honking great idea -- let's do more of those!
98+
99+
上面的诗来自[Python官方](http://legacy.python.org/dev/peps/pep-0020/),已经把前面唠叨的东西做了精美的概括。有中译本,[看这里](https://wiki.python.org/moin/PythonZenChineseTranslate),本文摘抄一种中文翻译:
100+
101+
优美胜于丑陋,明晰胜于隐晦
102+
简单胜于复杂,复杂胜于繁芜
103+
扁平胜于嵌套,稀疏胜于密集
104+
可读性很重要。
105+
虽然实用性比纯粹性更重要,
106+
但特例并不足以把规则破坏掉。
107+
108+
错误状态永远不要忽略,
109+
除非你明确地保持沉默,
110+
直面多义,永不臆断。
111+
112+
最佳的途径只有一条,然而他并非显而易见————谁叫你不是荷兰人?
113+
114+
置之不理或许会比慌忙应对要好,
115+
然而现在动手远比束手无策更好。
116+
117+
难以解读的实现不会是个好主意,
118+
容易解读的或许才是。
119+
120+
名字空间就是个顶呱呱好的主意。
121+
122+
让我们想出更多的好主意!
123+
124+
##准备
125+
126+
已经描述了python的美好,开始学啦,做好如下准备:
127+
128+
- 电脑,必须的。不管是什么操作系统。
129+
- 上网,必须的。没有为什么。
130+
131+
除了这些,还有一条,非常非常重要,写在最后:**这是自己的兴趣。**
132+
133+

101.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
#Python安装
2+
3+
任何高级语言都是需要一个自己的编程环境的,这就好比写字一样,需要有纸和笔,在计算机上写东西,也需要有文字处理软件,比如各种名称的OFFICE。笔和纸以及office软件,就是写东西的硬件或软件,总之,那些文字只能写在那个上边,才能最后成为一篇文章。那么编程也是,要有个什么程序之类的东西,要把程序写到那个上面,才能形成最后类似文章那样的东西。
4+
5+
刚才又有了一个术语——“程序”,什么是程序?本文就不讲了。如果列为观众不是很理解这个词语,请上网google一下。
6+
7+
>>**注:推荐一种非常重要的学习方法**
8+
9+
>>在我这里看文章的零基础朋友,乃至于非零基础的朋友,不要希望在这里学到很多高深的python语言技巧。
10+
11+
>>“靠,那看你胡扯吗?”
12+
13+
>>非也。重要的是学会一些方法。比如刚才给大家推荐的“上网google一下”,就是非常好的学习方法。互联网的伟大之处,不仅仅在于打打游戏、看看养眼的照片或者各种视频之类的,当然,在某国很长时间互联网等于娱乐网,我忠心希望从读本文的朋友开始,互联网不仅仅是娱乐网,还是知识网和创造网。扯远了,拉回来。在学习过程中,如果遇到一点点疑问,都不要放过,思考一下、尝试一下之后,不管有没有结果,还都要google一下。
14+
15+
>>列为看好了,我上面写的很清楚,是google一下,不是让大家去用那个什么度来搜索,那个搜索是专用搜索八卦、假药、以及各种穿的很节俭的女孩子照片的。如果你真的要提高自己的技术视野并且专心研究技术问题,请用google。当然,我知道你在用的时候时候困难的,做为一个要在技术上有点成就的人,一定要学点上网的技术的,你懂得。
16+
17+
>>什么?你不懂?你的确是我的读者:零基础。那就具体来问我吧,不管是加入QQ群还是微博,都可以。
18+
19+
欲练神功,挥刀自宫。神功是有前提地。
20+
21+
要学python,不用自宫。python不用那么残忍的前提,但是,也需要安装点东西才能用。
22+
23+
所需要安装的东西,都在这个页面里面:www.python.org/downloads/
24+
25+
>>www.python.org是python的官方网站,如果你的英语足够使用,那么自己在这里阅读,可以获得非常多的收获。
26+
27+
在python的下载页面里面,显示出python目前有两大类,一类是python3.x.x,另外一类是python2.7.x。可以说,python3是未来,它比python2.7有进步。但是,现在,还有很多东西没有完全兼容python3。更何况,如果学了python2.7,对于python3,也只是某些地方的小变化了。
28+
29+
所以,我这里是用python2.7为例子来讲授的。
30+
31+
##Linux系统的安装
32+
33+
看官所用的计算机是什么操作系统的?自己先弄懂。如果是Linux某个发行版,就跟我同道了。并且我恭喜你,因为以后会安装更多的一些python库(模块),在这种操作系统下,操作非常简单,当然,如果是iOS,也一样,因为都是UNIX下的蛋。只是widows有点另类了。
34+
35+
不过,没关系,python就是跨平台的。
36+
37+
我以ubutu 12.04为例,所有用这个操作系统的朋友(肯定很少啦),你们肯定会在shell中输入python,如果看到了>>>,并且显示出python的版本信息,恭喜你,因为你的系统已经自带了python的环境。的确,ubuntu内置了python环境。
38+
39+
我非要自己安装一遍不可。那就这么操作吧:
40+
41+
#下载源码,目前最新版本是2.7.8,如果以后换了,可以在下面的命令中换版本号
42+
#源码也可以在网站上下载,具体见前述下载页面
43+
wget http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
44+
45+
#解压源码包
46+
tar -zxvf Python-2.7.8.tgz
47+
48+
#编译
49+
cd Python-2.7.8
50+
./configure --prefix=/usr/local #指定了目录
51+
make&&make install
52+
53+
以上步骤,是我从网上找来的,供参考。因为我的机器早就安装了,不想折腾。安装好之后,进入shell,输入python,会看到如下:
54+
55+
qw@qw-Latitude-E4300:~$ python
56+
Python 2.7.6 (default, Nov 13 2013, 19:24:16)
57+
[GCC 4.6.3] on linux2
58+
Type "help", "copyright", "credits" or "license" for more information.
59+
>>>
60+
61+
恭喜你,安装成功了。我用的是python2.7.6,或许你的版本号更高。
62+
63+
##windows系统的安装
64+
65+
[下载页面里面](https://www.python.org/download/releases/2.7.8/)找到windows安装包,下载之,比如下载了这个文件:python-2.7.8.msi。然后就是不断的“下一步”,即可完成安装。
66+
67+
特别注意,安装完之后,需要检查一下,在环境变量是否有python。
68+
69+
>>如果还不知道什么是windows环境变量,以及如何设置。不用担心,请google一下,搜索:"windows 环境变量"就能找到如何设置了。
70+
71+
以上搞定,在cmd中,输入python,得到跟上面类似的结果,就说明已经安装好了。
72+
73+
##Mac OS X系统的安装
74+
75+
其实根本就不用再写怎么安装了,因为用Mac OS X 的朋友,肯定是高手中的高高手了,至少我一直很敬佩那些用Mac OS X 并坚持没有更换为windows的。麻烦用Mac OS X 的朋友自己网上搜吧,跟前面unbutu差不多。
76+
77+
如果按照以上方法,顺利安装成功,只能说明幸运,无它。如果没有安装成功,这是提高自己的绝佳机会,因为只有遇到问题才能解决问题,才能知道更深刻的道理,不要怕,有google,它能帮助列为看官解决所有问题。当然,加入QQ群或者通过微博,问我也可以。
78+
79+
就一般情况而言,Linux和Mac OS x系统都已经安装了某种python的版本,打开就可以使用。但是windows是肯定不安装的。除了可以用上面所说的方法安装,还有一个更省事的方法,就是安装:ActivePython
80+
81+
##用ActivePython安装
82+
83+
这个ActivePython是一个面向好多种操作系统的Python 套件,它包含了一个完整的 Python 发布、一个适用于 Python 编程的 IDE 以及一些 Python的。有兴趣的看官可以到其官网浏览:[http://www.activestate.com](http://www.activestate.com/activepython)
84+
85+
##用源码安装
86+
87+
python是开源的,它的源码都在网上。有高手朋友,如果愿意用源码来安装,亦可,请到:[https://www.python.org/ftp/python/](https://www.python.org/ftp/python/),下载源码安装。
88+
89+
简单记录一下我的安装方法(我是在linux系统中做的):
90+
91+
1. 获得root权限
92+
2. 到上述地址下载某种版本的python: wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
93+
3. 解压缩:tar xfz Python-2.7.8.tgz
94+
4. 进入该目录:cd Python-2.7.8
95+
5. 配置: ./configure
96+
6. 在上述文件夹内运行:make,然后运行:make install
97+
7. 祝你幸运
98+
8. 安装完毕
99+
100+
OK!已经安装好之后,马上就可以开始编程了。
101+
102+
最后喊一句在一个编程视频课程广告里面看到的口号,很有启发:“我们程序员,不求通过,但求报错”。
103+
104+

0 commit comments

Comments
 (0)