文博的python教程

作者:文博
谨以此献给给予我生命、扶持我成长、帮助我、关注我、指导我、伴随我的各类人们以linux狂热分子、linux发烧友、windows反对者、代码狂热者和一切倡导自由、免费、开源、热衷于gnu事业的虽然现在还不算卓越但未来一定很杰出的天才工程师们。

前言

刚刚进入大学时,我的理想是在毕业时完成一本书。因为比较疯狂于编码,所以我决定写一本关于编写程序这方面的书。转眼间,就毕业了,而我的书也即将完成。感谢一如既往支持文博的朋友们,谢谢!

那么我是如何写这本书的呢,我用了将近三年的时间才做好了准备来写这本书。直到我准备的比较充分时,我才开始日以继夜的敲入这些文字,完成这本书,一是对我的大学生活有一个交代,也算我在大学没有虚度年华,二是毕竟完成了一个心愿,算作对自己毅力的肯定。

我个人认为,我之所以能走向编程这个道路,是我的命运。是无数个偶然和必然相结合而成就的。偶然是因为环境,我总是能得到与程序相关的环境,必然是我的性格能让我远离游戏而专心的研究技术。

艰难的过程:

我接触电脑是在小学5年纪的时候,那时是dos系统,机器没装硬盘,上机需要自带3.5寸盘1.44m的那种,当初从老师买那个盘用了5块钱。刚接触电脑就接触了一个叫做logo的编成语言,可以用代码来实现音乐效果和动画效果。顺便提一句,那时学校的显示器是彩色的。小学时4点就放学了,但我5点才回家,那一个小时都在学校机房中操作logo语言中度过的。很早的编程经历奠定了我的方向,虽然我现在几乎忘记了logo语言的语法(我还记得bk 100是倒退100个像素画线),但我觉得它对我的程序人生作用非常显著。

初中时,学校开了计算机课程,学的是98系统。那时我连开关机都不会,只是知道机箱有两个按钮,先安一个,开不开就按另一个。初二时学校开了一个计算机兴趣小组,我报名了,但由于报名的人数太多,需要进行上机考试,比的是打字速度,我理所当然的被淘汰了。可是,当初那些进了兴趣小组的人,又有哪一个能和我比?我是一个喜欢学习但不喜欢课本的人,所以被计算机兴趣小组淘汰后,我加入了电子信息兴趣小组,通过做实验,那个时候的我已经能自己设计制作收音机了,而且我记得能收到两个电台呢!甚至在傍晚的时候还能清晰的收到来自俄罗斯的电台声音。当然,做实验也会受伤,由于我的神经系统有些紊乱,手经常抖动,现在也是。所以现在我的手上还有些当年的烙印(多处电烙铁烫伤的痕迹)。

活跃的思维是在实验室里练就的。初中经常在实验室里疯狂的做实验,造就了我非凡的思维。我被220伏的电压打过。在那一瞬,灯泡都亮了,所以我看电视上什么人体导电让电灯发光的节目,我并不觉得那是一个很神奇的事情。在初中我知道了原来喇叭能当做麦克使用,原来电动机还能用来发电,原来电动机还能做喇叭(虽然比较费电)。可以说我的思维全是在初中时代造就的。在初中时代,我学会了一个非常重要的东西:一类东西的另类用法。

高中时代主要是应用我各种奇特的想法,比如我用一根大头针导致一个机房的机器产生数据风暴,可是老师怎么能想到导致网络不畅通的原因竟然是一根网线上插了一根大头针?从高一时我就开始热衷于写批处理让机房的98系统一台台的蓝屏。无聊的我竟然做了整整两年的恶作剧。后半年是公开批处理让别人去做恶作剧的。恶作剧其实是对计算机老师的不满,有个很好的老师只教了我半学期就掉走了。我还帮他做过机房的系统呢,用ghost。高中我开始学习basic语言。可是没有环境呀,不知道我从什么资料上得知windows自带basic编辑器,可是在学校的机器上我就是找不到,然后去网吧找,也没有。最后却在同学的文曲星上找到了。我开始用文曲星里的basic编写计算物理题的程序,我甚至还写了一个叫作rose的操作系统,能运行在文曲星上。我记得我的数学老师是一个科学家一样的人物,我很喜欢那样的老师,也经常问关于写程序方面的问题(但从没问过数学),老师只是告诉我,无论什么时候,都要学好数学,尤其是数学的思想。很惭愧,时至今日我依然在学习数学,但还是不知道什么是数学的思想。更惭愧的是我高考时数学只考了5分。别人都说我是故意略过正确的答案,因为即使随机选择,答对的概率也是25%,怎么也不可能只打5分的。但我总是能创造奇迹。

由于喜爱编程,高中有个老师很得意我,所以在我打扫他办公室发现几本c语言的资料时,他就慷慨的把资料都给我了,甚至包括他在哈工大上学时的c语言笔记。我现在觉得那时的我就展现了天才的一面了,看了几个星期的c语言,竟然能写出一个破解还原卡的东西来。然后别的计算机老师就把机房的开发环境都删除了。

大学:最值得驻留的地方是图书馆。

如果不是以每3天1本书的速度进行我的大学生活,那么大学的三年等于虚度。如果以为大学能学到什么与工作相关的技术,那还是到技校去吧。但我认为大学重要的是文化,所以图书馆是唯一值得驻留的地方。在图书馆,我阅读英文报纸发现了一个叫做linux live的东西,于是下载到u盘里开始接触了传说中的linux。同样是在图书馆的同类英文报纸,我得知了一个叫做python的编程语言,但本地的图书馆和书店都没有相关的书籍。那时我就想,为什么我不自己去写一本叫做《python教程》的书呢?我并不觉得我的这个想法可笑,虽然别人都认为这个不可能,因为那时我连python怎么用都不会呢。我利用学校的上机时间来练习linux,经过千辛万苦,终于搜到了python的安装包。然后开始研究,一点一点的查单词,一点一点的研究。那时我还没有自己的电脑,但为了我的梦想,我放弃了word课程,学校的电脑基础课程我都花在linux上了。到现在也不会使word。我现在用openoffice.org写我的书。

有所追求必然有所放弃:

至少在别人游戏的时候,我都是在研究的。虽然到现在觉得我也没研究明白什么。我一直以为计算机是用来进行科研的,所以我十分反对用电脑进行娱乐。

三年来,为了写这本书,我付出了很大的心血,但其中的艰辛又有谁知,更于谁人说?

三年来,为了写这本书,我做足了准备,研究unix哲学,研究程序设计语言,研究面向对象的思路,研究各种框架,研究各种编程语言,甚至还开发过病毒感染了计算机系办公室的多台电脑。

好了,前言似乎说多了,简直就是我自传的缩略版。

下面开始进入正题。

文博 2008年 写于哈尔滨

第一章:初识python

python是一个简单易学、功能强大的、完全面向对象的编程语言。由guido van rossum创造。命名是根据英国广播公司的节目“蟒蛇飞行马戏”而来的。就象java起名叫java一样,你不必再意名字的由来,因为编程是为了实现你的想法,编码的过程正事实现理想的过程。我们知道走路、跑步、骑车、驾驶汽车、和乘坐飞机的速度是不同的。那么你去旅游,当然要选择一个好的交通工具。

同样,实现你的理想也需要一种编程语言。python只是其中的一种。也许你听说过c,听说过vb,听说过java,听说过perl或php。但你没听说过python。就像你能在马路上见到各种汽车却见不到坦克一样。但你见不到,并不代表它不存在或不好。相反,它很优秀。

python的特点:

正如其他书籍在开篇所述,我也按照惯例介绍python的特点,尽管我不想介绍。python的特点是简约,但简约不简单。python程序的可读性非常好,以至于凡是能读懂英文的人都能看懂它的代码。(如果你的英文不好呢?学呀!)

python易学,由于语法解构和英文类似,所以学习python并非难事。(工夫在诗外,想写好诗并不在于努力学好诗本身。同样,学好python也不用花太多的时间学习python的语法,因为它是很好学很好读的)

省略1g字节的内容

第二章 简单实例

想学好编程有绝招:反复动手敲代码!魔鬼训练法。

1、helloworld

first.py

print ‘ i love python’

我们不用helloworld。

可以看到,打印很简洁。

system.out.println(“hello”);

是不是比java简洁呢?

2、关于开发环境

由于我是linux发烧友,又是windows的坚决反对者,所以开发环境理所当然是linux。

笔者的所有示例代码都经过ubuntu linux7.4执行测试通过。ubuntu linux自带python2.5。

在终端里直接敲入python即可起动python交互式shell。

打印字符串。

3、其余几章尚未整理完毕,待续中……

Posted in 未分类