前 言 计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。它包括了涵盖计算机科学之广度的一系列思维活动。近些年,计算思维在其他相关学科中的影响越来越大。例如,机器学习已经改变了统计学,就数学尺度和维数而言,统计学应用于各类问题的规模在几年前还是不可想象的。像计算机科学家那样去思维远不止能为计算机编程,还要求能够在抽象的多个层次上进行思维。不仅是计算机科学专业的学生,所有专业的学生未来都应该具有“像计算机科学家一样思维”的初步能力。 本书作为大学低年级的一门计算机基础课程的教材,尽可能简单地介绍计算机科学基础知识和思维方法,强调解决问题、设计和编程等计算机科学的核心技能。本书没有使用传统的系统语言(如C++和Java),而是使用了脚本语言Python。Python非常灵活,实验非常容易,解决简单问题的方法简洁明了。Python的基本结构简单、干净、设计精良,它使读者能够专注于算法思维和程序设计的主要技能,而不会陷入晦涩难解的语言细节。在Python中学习的概念可以直接应用于后续学习的系统语言。虽然本书使用Python作为编程语言,但Python仅用于说明计算机科学的基础知识、设计和编程的基本原理,本书内容并未涉及Python的高级应用领域。 全书分为11章,内容包括: 第1章“数据表示与计算”,包括Python程序设计基础知识介绍、Python解释器使用方法、计算机中的数值表示方法、算术运算和逻辑运算。 第2章“数据存储”,包括计算机硬件结构、机器编码及执行过程;数值类型、文本类型和字符串在内存中的存储方式;Python中的变量、表达式和赋值语句。 第3章“流程控制”,包括语句块、选择结构中的if语句和ifelse语句,以及循环结构中的while语句、whileelse语句、for语句和循环嵌套。 第4章“批量数据处理”,包括数组和记录的基础知识介绍;列表、元组、字典和集合的创建及使用方法;列表、序列和字符串的常用方法。 第5章“用函数实现模块化程序设计”,包括函数定义及调用方法、函数参数类型、函数参数传递方式、lambda函数、变量的作用域、模块化程序设计思想、Python模块、Python标准库模块等内容。 第6章“用类实现面向对象程序设计”,包括类的定义与使用方法、派生新类及增强子类方法、类的变量访问控制方法。 第7章“输入和输出”,包括设置字符串格式控制输出格式、磁盘、文件读写过程、文件名和文件夹、顺序读写文本文件、顺序读写二进制文件、随机读写二进制文件、异常处理、图像和音频文件。 第8章“算法与数据结构”,包括算法的基本概念;算法的流程图表示法和伪代码表示法;算法的特征与评价;最大和最小、求和、求积、迭代、递归、排序、查找和分治算法;栈、队列和线性表。 第9章“图形用户界面”,包括tkinter图形用户界面开发基础;组件窗口、标签、框架和布局;基于事件的tkinter组件;面向对象的图形用户界面;使用matplotlib库实现数据可视化。 第10章“Web和搜索”,包括Web工作模型、统一资源定位符、超文本传输协议、超文本标记语言、urllib.request模块、html.parser模块和正则表达式。 第11章“数据库”,包括数据库基本概念、关系数据库基础操作、SQL语句使用方法、使用sqlite3创建数据库等。 本书的前七章是基础部分,学习时间较少的读者可以着重学习这七章。本书在内容选取上没有特别注重知识的完备性,而是更注重初学者对概念的理解。由于篇幅有限,课后习题的答案未在书后列出,读者可在清华大学出版社网站下载相关电子文档及代码。 本书受“吉林师范大学教材出版基金”资助,在本书的编写过程中,编者参阅了书末参考文献中所列的各位老师的著作,清华大学出版社的编辑老师认真审阅并校对了稿件,在此表示衷心感谢。 由于作者水平有限,书中难免存在错漏之处,敬请读者批评指正。 编者2021年4月