PDF源文件地址 :
[自述:翻译第一章花了我大概一周的时间,虽然不是7*8小时的那种翻译强度,只是工作之余挑战一下自己,让我体会到翻译就跟本章讲的调试一样,它会让你抓狂,郁闷,沮丧。但是最终把这一章翻译完成了,虽然自我感觉翻译得不是很好,但还是蛮有收获感的,有点挑战自我的意思。目前离翻译完成还有18章!!!]
第一章 编程之道 本书的目的在于教你如何像一个计算机科学家思考。这种思维方式结合了像数学,工程学和自然科学的一些有效的特性,就像数学家或者计算机科学家一样用正式语言去表达想法(尤其是算法)。让你能够像工程师那样设计并安装组件到系统里,并且在众多方案中评估选择。或者像科学家那样观察复杂的系统行为,建立假设并验证其真伪。
对于计算机科学家来说最重要一项技能就是解决问题。解决问题意味着提出问题,创造性的思考解决方案,并且清楚准确的表达出解决方案。事实证明,学习编程的过程就是锻炼解决问题能力的绝佳机会,所谓熟能生巧。这就是本章的标题为“编程之道”的原因。
一方面,学会编程是一项有用的技能。另一方面,运用编程可以达成目标。随着我们继续深入的学习,你会发现这个目标会越来越明确。
1.1 Python编程语言
Python是高级语言的一种,或许你还听说过其它的一些高级语言,例如 C, C++, Perl 和 Java 等。当然也有一些低级语言,通常是指所谓的“机器语言”或者“汇编语言”。简单来说,计算机只能运行低级语言写的程序。因此高级语言写的程序运行之前需要处理,这额外的处理是需要时间的,这是高级语言的一个小瑕疵,但是瑕不掩瑜。首先,使用高级语言编程相对容易一些,你只要花很少的时间就能写出更短,可读性更强的代码,也很容易修正;其次,高级语言的可移植性很强,也就是说可以跨平台运行(在某些平台只需做很小的修改,甚至不需要修改),这是低级语言所不具备的特性(如需跨平台运行必须重写)。
由于高级语言的这些优势,几乎所有的程序都是用高级语言编写,只有很少特定的程序还在使用低级语言。
有两种程序可以把高级语言转换为低级语言:解释器和编译器。解释器读取高级语言并且按程序逻辑执行,并且一次只能执行一个程序,逐行读取程序并处理运算。解释器结构如图1.1所示。
图1.1
编译器则在程序运行之前读取并转换。高级程序称之为源码,转换器称之为目标代码或可执行程序。程序只需要编译一次,后面可以重复执行无需其他处理。编译器结构如图1.2所示。
图1.2: 编译器把源码转换成目标代码, 并由硬件执行器运行.
Python程序是由解释器来执行的,因此它是一种解释型语言。它支持两种模式:交互式模式和脚本模式。交互式模式下,你输入Python代码,解释器则输出结果:
>>> 1 + 1
2
“>>>” 是表示Python解释器就绪的提示符,如果你输入 1+1,解释器则会输出结果2.
或者,你可以把代码保存在文件里,再使用解释器来执行文件,这就是脚本模式。按照惯例,Python脚本的后缀为.py。
执行脚本必须提供完整的文件名给解释器。例如脚本文件名为 dinsdale.py 在UNIX命令窗口你需要输入 python dinsdale.py 即可。在其它开发环境运行脚本会有所不同,你可以从Python官网查找对应的说明文档。
交互模式适用于测试较少代码的情况,代码较多的情况建议采用脚本模式,这样方便你随时修改和执行。
1.2 什么是程序?