内容简介
第1章 计算机科学导论
1.1计算机科学
1.1.1计算机专业人员的工作
1.1.2模型、算法和程序
1.1.3必备的工具
1.1.4什么是计算机科学
1.2计算机系统
1.2.1计算机硬件
1.2.2操作系统
1.2.3网络和网络协议
1.2.4程序开发语言
1.2.5软件库
1.3 Python程序设计语言
1.3.1 Python简史
1.3.2构建Python开发环境
1.4计算思维
1.4.1一个示例问题
1.4.2抽象和建模
1.4.3算法
1.4.4数据类型
1.4.5赋值语句和执行控制结构
1.4.6本章小结
第2章Python数据类型
2.1表达式、变量和赋值语句
2.1.1代数表达式和函数
2.1.2布尔表达式和运算符
2.1.3变量和赋值语句
2.1.4变量名称
2.2字符串
2.2.1字符串运算符
2.2.2索引运算符
2.3列表和元组
2.3.1列表运算符
2.3.2列表是可变类型,字符串是不可变类型
2.3.3元组
2.3.4元组和列表的方法
2.4对象和类
2.4.1对象类型
2.4.2数值类型的有效值
2.4.3数值类型的运算符
2.4.4创建对象
2.4.5隐式类型转换
2.4.6显式类型转换
2.4.7类方法和面向对象的程序设计
2.5 Python标准库
2.5.1 math模块
2.5.2 fractions模块
2.6电子教程案例研究:海龟图形
2.7本章小结
2.8练习题答案
2.9习题
第3章 命令式编程
3.1 Python程序
3.1.1我们的第一个Python程序
3.1.2 Python模块
3.1.3内置函数print()
3.1.4使用input()函数实现交互式输入
3.1.5 eval ()函数
3.2执行控制结构
3.2.1单分支结构
3.2.2双分支结构
3.2.3循环结构
3.2.4嵌套的控制流结构
3.2.5 range()函数
3.3用户自定义函数
3.3.1我们自定义的第一个函数
3.3.2函数输入参数
3.3.3 print()与return的比较
3.3.4函数定义实际上是“赋值”语句
3.3.5注释
3.3.6文档字符串
3.4 Python变量和赋值语句
3.4.1可变类型和不可变类型
3.4.2赋值语句和可变性
3.4.3交换
3.5参数传递
3.5.1不可变类型参数传递
3.5.2可变类型参数传递
3.6电子教程案例研究:自动化海龟图形
3.7本章小结
3.8练习题答案
3.9习题
3.10思考题
第4章 文本数据、文件和异常
4.1深入研究字符串
4.1.1字符串表示
4.1.2深入研究索引运算符
4.1.3字符串方法
4.2格式化输出
4.2.1函数print ()
4.2.2字符串方法format()
4.2.3按列对齐排列数据
4.2.4获取与格式化日期和时间
4.3文件
4.3.1文件系统
4.3.2打开和关闭文件
4.3.3读取文本文件的模式
4.3.4写入文本文件
4.4错误和异常
4.4.1语法错误
4.4.2内置异常
4.5电子教程案例研究:图像文件
4.6本章小结
4.7练习题答案
4.8习题
4.9思考题
第5章 执行控制结构
5.1选择控制和if语句
5.1.1三路以及多路分支
5.1.2条件的排列顺序
5.2 for循环和迭代模式
5.2.1循环模式:迭代循环
5.2.2循环模式:计数器循环
5.2.3循环模式:累加器循环
5.2.4其他类型的累加
5.2.5循环模式:嵌套循环
5.3深入研究列表:二维列表
5.3.1二维列表
5.3.2二维列表和嵌套循环模式
5.4 while循环
5.5更多循环模式
5.5.1循环模式:序列循环
5.5.2循环模式:无限循环
5.5.3循环模式:循环和折半
5.6其他迭代控制语句
5.6.1 break语句
5.6.2 continue语句
5.6.3 pass语句
5.7电子教程案例研究:图像处理
5.8本章小结
5.9练习题答案
5.10习题
5.11思考题
第6章 容器和随机性
6.1字典
6.1.1用户自定义索引作为字典的动机
6.1.2字典类属性
6.1.3字典运算符
6.1.4字典方法
6.1.5字典作为多路分支if语句的替代方法
6.1.6字典作为计数器集合
6.1.7元组对象可以作为字典的键
6.2集合
6.2.1使用set构造函数移除重复项
6.2.2 set运算符
6.2.3 set方法
6.3字符编码和字符串
6.3.1字符编码
6.3.2 ASCII
6.3.3 Unicode
6.3.4 Unicode字符的UTF-8编码
6.4 random模块
6.4.1选择一个随机整数
6.4.2选择一个随机“实数”
6.4.3随机混排、挑选和抽样
6.5电子教程案例研究:机会游戏
6.6本章小结
6.7练习题答案
6.8习题
6.9思考题
第7章 名称空间
7.1函数封装
7.1.1代码重用
7.1.2模块化
7.1.3封装
7.1.4局部变量
7.1.5与函数调用相关的名称空间
7.1.6名称空间与程序栈
7.2全局名称空间和局部名称空间
7.2.1全局变量
7.2.2局部作用范围的变量
7.2.3全局作用范围的变量
7.2.4在函数中改变全局变量
7.3异常控制流
7.3.1异常和异常控制流
7.3.2捕获和处理异常
7.3.3默认异常处理程序
7.3.4捕获给定类型的异常
7.3.5多重异常处理程序
7.3.6控制异常流
7.4模块作为名称空间
7.4.1模块属性
7.4.2导入模块时发生了什么
7.4.3模块搜索路径
7.4.4顶层模块
7.4.5导入模块属性的不同方法
7.5 类作为名称空间
7.5.1一个类是一个名称空间
7.5.2类方法是在类名称空间中定义的函数
7.6电子教程案例研究:使用调试器进行调试
7.7本章小结
7.8练习题答案
7.9习题
7.10思考题
第8章 面向对象的程序设计
8.1定义新的Python类
8.1.1类Point的方法
8.1.2类和名称空间
8.1.3每个对象都有一个关联的名称空间
8.1.4类Point的实现
8.1.5实例变量
8.1.6实例继承类属性
8.1.7类定义的一般格式
8.1.8编写类的文档
8.1.9类Animal
8.2用户自定义类示例
8.2.1构造函数重载
8.2.2默认构造函数
8.2.3扑克牌类
8.3设计新的容器类
8.3.1设计一个表示一副扑克牌的类
8.3.2实现Deck类
8.3.3容器类Queue
8.3.4实现Queue类
8.4运算符重载
8.4.1运算符是类方法
8.4.2使Point类对用户友好
8.4.3构造函数和repr()运算符之间的约定
8.4.4使Queue类对用户友好
8.5继承
8.5.1继承类的属性
8.5.2类定义的一般格式
8.5.3重写父类方法
8.5.4扩展父类方法
8.5.5通过继承list实现一个Queue类
8.6用户自定义异常
8.6.1抛出一个异常
8.6.2用户自定义异常类
8.6.3改进类Queue的封装
8.7电子教程案例研究:索引和迭代器
8.8本章小结
8.9练习题答案
8.10习题
8.11思考题
第9章 图形用户界面
9.1 tkinter图形用户界面开发基本知识
9.1.1组件Tk: GUI窗口
9.1.2组件Label:显示文本
9.1.3显示图像
9.1.4布局组件
9.1.5将组件布局为表格
9.2基于事件的tkinter组件
9.2.1 Button组件及事件处理程序
9.2.2事件、事件处理程序和mainloop()
9.2.3 Entry组件
9.2.4 Text组件和绑定事件
9.2.5事件模式和tkinter类Event
9.3设计图形用户界面
9.3.1组件Canvas
9.3.2作为组织容器的组件Frame
9.4面向对象的图形用户界面
9.4.1 GUI面向对象程序设计基本知识
9.4.2把共享组件赋值给实例变量
9.4.3把共享数据赋值给实例变量
9.5电子教程案例研究:开发一个计算器
9.6本章小结
9.7练习题答案
9.8 习题
9.9思考题
第10章 递归
10.1递归简介
10.1.1调用自身的函数
10.1.2停止条件
10.1.3递归函数的特性
10.1.4递归思想
10.1.5递归函数调用和程序栈
10.2递归示例
10.2.1递归数列模式
10.2.2分形图形
10.2.3病毒扫描
10.2.4线性递归
10.3运行时间分析
10.3.1指数函数
10.3.2运算次数
10.3.3斐波那契数列
10.3.4运行时间的实验分析
10.4查找
10.4.1线性查找
10.4.2二分查找
10.4.3线性查找和二分查找比较
10.4.4唯一性测试
10.4.5选择第k个最大(或最小)项
10.4.6计算出现频率最多的项
10.5电子教程案例研究:汉诺塔
10.6本章小结
10.7练习题答案
10.8习题
10.9思考题
第11章Web和搜索
11.1万维网
11.1.1 Web服务器和Web客户端
11.1.2 WWW的“管道”
11.1.3命名方案:统一资源定位器
11.1.4协议:超文本传输协议
11.1.5超文本标记语言
11.1.6 HTML元素
11.1.7 HTM L文档的树结构
11.1.8锚点HTML元素和绝对链接
11.1.9相对链接
11.2 Python WWW API
11.2.1模块urllib.request
11.2.2模块html.parser
11.2.3重载HTMLParser处理程序
11.2.4模块urllib.parse
11.2.5收集HTTP超链接的解析器
11.3字符串模式匹配
11.3.1正则表达式
11.3.2 Python标准库模块re
11.4电子教程案例研究:Web爬虫
11.5本章小结
11.6练习题答案
11.7习题
11.8思考题
第12章 数据库和数据处理
12.1数据库和SQl
12.1.1数据库表
12.1.2结构化查询语言
12.1.3 SELECT语句
12.1.4 WHERE子句
12.1.5内置SQL函数
12.1.6 GROUP BY子句
12.1.7多表SQL查询
12.1.8 CREATE TABLE语句
12.1.9INSERT和UPDATE语句
12.2 Python中的数据库编程
12.2.1数据库引擎和SQLite
12.2.2使用sqlite3创建一个数据库
12.2.3提交数据库更改和关闭数据库
12.2.4使用sqlite3查询数据库
12.3函数语言方法
12.3.1列表解析
12.3.2 MapReduce 问题求解框架
12.3.3 MapReduce的抽象概念
12.3.4倒排索引
12.4并行计算
12.4.1并行计算简介
12.4.2 multiprocessing模块中的Pool类
12.4.3并行加速比
12.4.4并行MapReduce
12.4.5并行和顺序MapReduce
12.5电子教程案例研究:数据交换
12.6本章小结
12.7练习题答案
12.8习题
12.9思考题