《像计算机科学家一样思考Python(第2版)》——第1章 程序之道 1.1 什么是程序

第1章 程序之道

本书的目标是教会你像计算机科学家一样思考。这种思考方式综合了数学、工程学以及自然科学的一些最优秀的特性。计算机科学家与数学家类似,他们使用形式语言来描述理念(特别是计算);与工程师类似,他们设计产品,将元件组装成系统,对不同的方案进行评估选择;与自然科学家类似,他们观察复杂系统的行为,构建科学假说,并检验其预测。

作为计算机科学家,最重要的技能就是问题求解。问题求解是发现问题、创造性地思考解决方案以及清晰准确地表达解决方案的能力。实践证明,学习编程的过程,正是训练问题求解能力的绝佳机会。这也是本章标题用“程序之道”的原因。

一方面,你将学会编程,其本身就是一个非常有用的技能;另一方面,你可以使用编程作为工具,去达到更高的目标。随着本书的深入,那个目标会逐渐明晰。

1.1 什么是程序

程序是指一组定义如何进行计算的指令的集合。这种计算可能是数学计算,如解方程组或者查找多项式的根,也可以是符号运算,如搜索和替换文档中的文本,或者图形相关的操作,如处理图像或播放视频。

在不同的编程语言中,程序的细节有所不同,但几乎所有编程语言中都会出现以下几类基本指令。

输入:从键盘、文件或者其他设备中获取数据。

输出:将数据显示到屏幕,保存到文件中,或者发送到网络上等。

数学:进行基本数学操作,如加法或乘法。

条件执行:检查某种条件的状态,并执行相应的代码。

重复:重复执行某种动作,往往在重复中有一些变化。

信不信由你,这差不多就是全部了。你所遇到过的所有程序,无论多么复杂,都是由类似上面的这些指令组成的。所以我们可以把编程看作一个将大而复杂的任务分解为更小的子任务的过程,不断分解,直到任务简单到足以由上面的这些基本指令组合完成。

时间: 2024-12-24 21:31:01

《像计算机科学家一样思考Python(第2版)》——第1章 程序之道 1.1 什么是程序的相关文章

《像计算机科学家一样思考Python》——导读

前 言 本书的奇特历史 1999年,我正在为一门Java的编程入门课程备课.这门课我已经教过3个学期,感到有些灰心.课程的不及格率太高,即使是那些及格的学生,也只获得了很低的成就. 我发现问题之一是教材.它们太厚,有太多冗余的细节,而针对编程技巧的高阶的指导却很不足.并且学生们都受着"陷阱效应"的苦恼:开头时很容易,也能循序渐进,但接着在第5章左右,整个地板就突然陷落了.新资讯来得太多.来得太快,以至于我必须花费一学期剩下的全部时间来帮助他们拾回丢失的片段. 开课前两周,我决定自己来编

《像计算机科学家一样思考Python(第2版)》——导读

前 言 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯穿全书的主体是如何思考.设计.开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介. 全书共21章,详细介绍Python语言编程的方方面面.本书从最基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量.表达式.语句.函数和数据结构.书中还探讨了如何处理文件和数据库,如何理解对象.方法和面向对象编程,如何使用调试技巧来修正语法错误.运行时错误和语义错误.

《像计算机科学家一样思考Python》——3.7 执行流程

3.7 执行流程 为了保证函数的定义先于其首次调用执行,你需要知道程序中语句执行的顺序,即执行流程. 执行总是从程序的第一行开始.从上到下,按顺序,每次执行一条语句. 函数定义并不会改变程序的执行流程,但应注意函数体中的语句并不立即执行,而是等到函数被调用时执行. 函数调用可以看作程序执行流程中的一个迂回路径.遇到函数调用时,并不会直接继续执行下一条语句,而是跳到函数体的第一行,继续执行完函数体的所有语句,再跳回到原来离开的地方. 这样看似简单,但马上你会发现,函数体中可以调用其他函数.当程序流

《像计算机科学家一样思考Python(第2版)》——1.3 第一个程序

1.3 第一个程序 依照传统,用新语言编写的第一个程序叫"Hello, World!",因为这个程序所做的事情就是只显示"Hello, World!".在Python中,它是这个样子: >>> print('Hello, World!') 这是print语句的一个示例.print并不会真往纸上打印文字,而是在屏幕上显示结果.在这个例子中,输出的结果是: Hello, World! 程序中的引号表示要显示的文本的开始和结束,在输出结果中它们并不显示.

《像计算机科学家一样思考Python(第2版)》——2.9 术语表

2.9 术语表 变量(variable):引用一个值的名字. 赋值语句(assignment statement):将一个值赋值给变量的语句. 状态图(state diagram):用来展示一些变量以及其值的图示. 关键字(keyword):编译器或解释器保留的词,用于解析程序:变量名不能使用关键字,如if,def,while等. 操作数(operand):操作符所操作的值. 表达式(expression):变量.操作符和值的组合,可以表示一个单独的结果值. 求值(evaluate):对表达式按

《像计算机科学家一样思考Python(第2版)》——1.8 术语表

1.8 术语表 问题求解(problem solving):总结问题.寻找解决方案以及表达解决方案的过程. 高级语言(high-level language):设计来方便人们读写的编程语言,如Python. 低级语言(low-level language):设计来方便计算机执行的编程语言,也被称为"机器语言"或"汇编语言". 可移植性(portability):程序的一种属性:可以在多种类型的计算机上运行. 解释器(interpreter):一个读取其他程序并执行其

《像计算机科学家一样思考Python(第2版)》——1.9 练习

1.9 练习 练习 1-1 在计算机前阅读本书是一个好主意,因为你可以边看边试验书中的示例. 每当你试验新的语言特性时,应当试着故意犯错.例如,在"Hello,World!"程序中,如果少写一个引号,会发生什么?如果两个引号都不写,会怎么样?如果把print拼写错了,会如何? 这种试验会帮你记住所读的内容,也能帮你学会调试,因为这样能看到不同的出错消息代表着什么.现在故意犯错总比今后在编码中意外出错好. 在print语句中,如果漏掉一个括号,或者两个都漏掉,会发生什么? 如果正尝试打印

《像计算机科学家一样思考Python》——4.3 练习

4.3 练习 下面是一系列使用TurtleWorld的练习.它们力求有趣,但也包含着某些寓意.当你做这些练习时,可以猜想一下其寓意. 在接下来的章节中有这些练习的解答,所以在完成(或着至少尝试过)之前,请先别继续阅读. 1.写一个函数square,接受一个形参t,用来表示一只乌龟.利用乌龟来画一个正方形.写一个函数调用传入bob作为实参来调用square函数,并再运行一遍程序. 2.给square函数再添加一个形参length.修改函数内容,保证正方形的长度是length,并修改函数调用以提供这

《像计算机科学家一样思考Python》——3.5 添加新函数

3.5 添加新函数 至此,我们都只是在使用Python提供的函数,其实我们也可以自己添加新的函数.函数定义指定新函数的名称,并提供一系列程序语句.当函数被调用时,这些语句会顺序执行. 下面是一个例子: def print_lyrics(): print "I'm a lumberjack,and I'm okay." print "I sleep all night and I work all day." def是关键字,表示接下来是一个函数定义.这个函数的名称是