Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 09b005e

Browse filesBrowse files
committed
First commit
0 parents  commit 09b005e
Copy full SHA for 09b005e

File tree

Expand file treeCollapse file tree

391 files changed

+124241
-0
lines changed
Open diff view settings
Filter options

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Dismiss banner
Expand file treeCollapse file tree

391 files changed

+124241
-0
lines changed
Open diff view settings
Collapse file

‎001.md‎

Copy file name to clipboard
+133Lines changed: 133 additions & 0 deletions
  • Display the source diff
  • Display the rich diff
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+
Collapse file

‎101.md‎

Copy file name to clipboard
+104Lines changed: 104 additions & 0 deletions
  • Display the source diff
  • Display the rich diff
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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.