1.2 起点与终点
本书并不要求我们具有任何编程经验。如果我们具有一定的编程经验,应该熟悉下面这些内容。
● 理解变量——如果我们以前学过初级代数课程,应该明白什么是变量。在本书的下一部分,我们将会了解编程中的变量概念与代数中的变量的区别。
● 理解真/假(True/False)语句——我们可以把语句看成用于确定真假的句子。例如,“下雨了”这条语句可以为真,也可以为假。我们还可以使用not这个词把语句转换为其相反值。例如,“下雨了”为真,那么“没有下雨”就为假。
● 连接语句——如果有多条语句,可以用单词and或or连接它们。例如,“下雨了”为真,“我饿了”为假,则“下雨了并且我饿了”就为假,因为这两个部分都必须为真这条语句才能成立。但是“下雨了或者我饿了”为真,因为至少有一个部分为真。
● 做出决定——如果有多条语句,就可以使用if…then根据一条语句是否为真来做出决定。例如,“如果下雨了,地面就是湿的”由两个部分组成:“下雨了”和“地面是湿的”。语句“地面是湿的”是语句“下雨了”的后果。
● 遵循流程图——理解本书的内容并不需要用到流程图,但理解流程图所需要的技巧与理解基础编程知识是一样的。这种技巧的其他应用还包括玩问题游戏、遵照菜谱做菜、阅读自己最喜爱的书籍以及理解算法等。我们应该熟悉遵循一组指令并做出分支决策的过程。流程图显示了一个指令列表,其中的指令从一个流向另一个,允许我们做出决定,从而导致不同的路径。在流程图中,我们会被询问一系列的问题,它们的答案是二选一:是或否。根据问题的答案,我们将会选择流程图中的某条特定路径,最终得到一个答案。图1.1是流程图的一个例子。
掌握了前面的技巧就可以开始我们的编程之旅了。在读完本书之后,我们将掌握编程的基础知识。我们将要学习的适用于所有编程语言的基本概念包括:
● 在编程中使用变量、表达式和语句;
● 使程序根据条件做出决定;
● 使程序在某些条件下自动地反复执行任务;
● 复用语言内置的操作,提高工作效率;
● 通过把一个大型任务分解为几个更小的任务,使代码更容易理解和维护;
● 理解不同的场合适合使用哪种数据结构(一种已经创建的结构,可以用某种特定的格式存储数据)。
图1.1 决定今天是否带伞的流程图
我们将使用一种名为Python(3.5版本)的语言来学习怎样进行编程。本书所学习的所有关于编程概念的知识都可以很轻松地转换到其他任何编程语言中,因为不同编程语言的基础知识都是相同的。更具体地说,在本书结束时,我们将熟悉Python编程语言的细节。我们将掌握下面这些内容。
● 怎样使用Python语言的语法(在英语中,相当于怎样形成合法的句子)。
● 怎样有机地组合不同的代码块,编写更为复杂的程序。
● 怎样使用其他程序员所编写的代码(在英语中,相当于引用其他人所写的作品,这样自己就无须重新书写)。
● 怎样有效地检查程序是否能够完成任务,包括测试和调试(在英语中,相当于检查拼写错误和语法错误)。
● 怎样编写通过键盘和鼠标与用户进行交互的程序。
● 怎样编写以数据为中心的程序或数学程序。