注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术工业技术建筑科学建筑设计Python3.6编程实践指南 计算机科学入门(原书第3版)

Python3.6编程实践指南 计算机科学入门(原书第3版)

Python3.6编程实践指南 计算机科学入门(原书第3版)

定 价:¥69.00

作 者: Paul Gries,Jennifer Campbell,Jason Montojo 著
出版社: 机械工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787111609940 出版时间: 2018-12-01 包装: 平装
开本: 16开 页数: 字数:  

内容简介

  《Python3.6编程实践指南——计算机科学入门》(原书第3版)通过Python语言介绍了编程的基本知识,内容包括现代编程语言常用的各种数据存储和基本处理方法,如数值、字符串、列表、集合、字典和文本信息;程序的条件和循环控制结构;函数的概念、定义和应用;编程方法以及测试和调试思路。本书也介绍了一些更高级的编程知识,包括面向对象的编程方法、图形用户界面的构建以及数据库的处理。

作者简介

  Paul Gries在多伦多大学计算机科学系有超过15年的教学经验。在多伦多大学期间,Paul获得过许多教学奖,合作出版了两部教材,而且一直是本系课程设计和更新的领导者。他和Jennifer Campbell在MOOC给成千上万的学生讲授Python。 Jennifer Campbell是多伦多大学在计算机科学方面的教学系列教授。她在2014年获得文理学院杰出教学奖。Jennifer致力于计算机科学教育研究,研究学生体验、成功因素和各种课程的有效性,包括翻转课堂和在线课堂。 Jason Montojo 是具有19年职业经验的软件开发者。他的专业是软件考古学,而且在谷歌编程之夏和软件学徒计划(Software Carpentry programs)中指导过几十位学生。

图书目录

译者序

原书前言

致谢

作者简介

第1 章 什么是编程 // 1

1.1 程序和编程 //2

1.2 什么是编程语言 //3

1.3 什么是程序错误(Bug) //3

1.4 方括号、圆括号和花括号的区别 //4

1.5 安装Python //4

第2 章 你好,Python // 5

2.1 计算机如何运行一个Python 程序 //5

2.2 表达式和值:用Python 做算术 //6

2.2.1 类型 // 7

2.2.2 整数除法、模和幂运算 // 8

2.3 什么是类型 //9

2.3.1 有穷精度 // 10

2.3.2 运算的优先级 // 10

2.4 变量和计算机内存:记忆值 //12

2.4.1 值、变量和计算机内存 // 13

2.4.2 赋值语句 // 14

2.4.3 给变量重新赋值 // 15

2.4.4 增强赋值 // 16

2.5 Python 如何告诉用户出错了 //18

2.6 占多行的单个语句 //19

2.7 代码的描述 //20

2.8 增强代码的可读性 //21

2.9 本章小结 //21

2.10 习题 //22

第3 章 函数的设计与应用 // 24

3.1 Python 提供的函数 //24

3.2  内存地址:Python 如何跟踪内存存储的值 //27

3.3 自定义函数 //28

3.4 用局部变量作临时存储 //31

3.5 在内存模型中跟踪函数调用 //32

3.6 设计新函数:一个菜单 //38

3.6.1 设计三个有关生日的函数 // 40

3.7 编写和运行一个程序 //48

3.8 省略一个返回语句:None //50

3.9 处理代码不能处理的情况 //50

3.10 本章小结 //51

3.11 习题 //52

第4 章 文本的处理 // 54

4.1 构造字符串 //54

4.1.1 串上的操作 // 55

4.2 在串中使用特殊字符 //57

4.3 构建多行串 //58

4.4 打印信息 //59

4.5 从键盘获取信息 //62

4.6 本章小结 //63

4.7 习题 //63

第5 章 选择 // 65

5.1 布尔类型 //65

5.1.1 布尔运算 // 65

5.1.2 关系运算 // 68

5.1.3 比较运算的组合 // 70

5.1.4 短路求值 // 72

5.1.5 串的比较 // 72

5.2 选择执行的语句 //73

5.3 嵌套条件语句 //79

5.4 记住一个布尔表达式求值的结果 //79

5.5 本章小结 //81

5.6 习题 //81

第6 章 程序组织的模块化方法 // 84

6.1 导入模块 //85

6.2 定义自己的模块 //89

6.2.1 导入时发生了什么 // 90

6.2.2 在导入时选择要运行的代码:__main__ // 91

6.3 半自动地测试代码 //95

6.4 函数分组的原则 //96

6.5 本章小结 //96

6.6 习题 //97

第7 章 方法的使用 // 98

7.1 模块、类和方法 //98

7.2 面向对象的调用方法 //100

7.3 探索字符串方法 //101

7.4 那些下划线是什么 //105

7.5 本章小结 //107

7.6 习题 //107

第8 章 使用列表存储数据集合 // 109

8.1 存储和访问列表中的数据 //109

8.1.1 空列表 // 111

8.1.2 列表是异构的 // 111

8.2 列表类型注释 //112

8.3 修改列表 //113

8.4 列表上的操作 //114

8.4.1 列表上的in 操作符 // 116

8.5 列表切片 //116

8.6 使用别名:名称代表什么 //118

8.6.1 可变参数 // 118

8.7 列表方法 //120

8.8 处理列表的列表 //121

8.9 本章小结 //123

8.10 习题 //123

第9 章 使用循环重复代码 // 126

9.1 处理列表中的数据项 //126

9.2 处理字符串中的字符 //128

9.3 在某个范围的数字上循环 //128

9.3.1 生成数字范围 // 128

9.4 用索引处理列表 //130

9.4.1 使用索引处理并行列表 // 132

9.5 循环嵌套循环 //133

9.5.1 嵌套列表上的循环 // 134

9.5.2 循环不规则列表 // 135

9.6 循环直到某个条件成立 //136

9.6.1 无限循环 // 138

9.7 基于用户输入的重复 //138

9.8  使用break 和continue 控制循环 //139

9.8.1 break 语句 // 139

9.8.2 continue 语句 // 141

9.8.3  关于break 和continue的警告 // 142

9.9 本章小结 //143

9.10 习题 //143

第10 章 文件读写 // 146

10.1 文件分多少种 //146

10.2 打开文件 //147

10.2.1 with 语句 // 148

10.2.2 计算机上的文件是如何组织的 // 149

10.2.3 指定想要的文件 // 149

10.3 读取文件的方法 //150

10.3.1 读取方法 // 150

10.3.2 Readlines 方法 // 151

10.3.3 "For Line in File" 方法 // 152

10.3.4 Readline 方法 // 153

10.4 互联网上的文件 //155

10.5 写入文件 //156

10.6 使用StringIO 编写示例调用 //157

10.7  编写使用文件读取技术的算法 //159

10.7.1 跳过标题 // 159

10.7.2 处理数据中缺失的值 // 161

10.7.3 处理空格分隔的数据 // 163

10.8 多行记录 //167

10.9 向前看 //170

10.10 本章小结 //172

10.11 习题 //172

第11 章  使用其他容器类型存储数据 // 174

11.1 使用集合存储数据 //174

11.1.1 集合运算 // 176

11.1.2 集合示例:北极鸟 // 178

11.1.3 集合的内容一定是不可变的 // 179

11.2 使用多元组存储数据 //179

11.2.1使用多元组赋值给多个变量 // 183

11.3 用字典存储数据 //184

11.3.1 更新和检查成员 // 186

11.3.2 遍历字典 // 187

11.3.3 字典操作 // 188

11.3.4 字典示例 // 190

11.4 反转字典 //191

11.5 在元组、集合和字典中使用in运算符 //192

11.6 各种容器的比较 //193

11.7 创建新的类型注释 //193

11.8 本章小结 //194

11.9 习题 //195

第12 章 算法的设计 // 197

12.1 查找两个最小值 //197

12.1.1 查找、移除、查找 // 199

12.1.2  排序、确定最小值、获取索引 // 201

12.1.3 遍历列表 // 202

12.2 定时功能 //205

12.3 本章小结 //207

12.4 习题 //207

第13 章 搜索与排序 // 209

13.1 搜索列表 //209

13.1.1 线性搜索概述 // 209

13.1.2  线性搜索的while 循环版本 // 211

13.1.3 线性搜索的for 循环版本 // 212

13.1.4 哨兵搜索 // 213

13.1.5 对搜索进行计时 // 214

13.1.6 线性搜索的运行时间 // 215

13.2 二分搜索 //215

13.2.1 二分搜索的运行时间 // 219

13.2.2 内置二分搜索 // 219

13.3 排序 //220

13.3.1 选择排序 // 221

13.3.2 插入排序 // 225

13.3.3 性能 // 227

13.4 更高效的排序算法 //229

13.4.1 第一次尝试 // 229

13.5  归并排序:一种快速排序算法 //229

13.5.1 归并两个有序列表 // 230

13.5.2 归并排序 // 230

13.5.3 归并排序的分析 // 232

13.6 本章小结 //233

13.7 习题 //234

第14 章 面向对象的编程 // 236

14.1 理解一个问题域 //236

14.2  isinstance 函数、object 类和Book 类 //237

14.3 在Book 类中编写一个方法 //240

14.4  使用Python 语法:更多特殊的方法 //246

14.5 面向对象理论的一些知识 //249

14.5.1 封装 // 249

14.5.2 多态 // 250

14.5.3 继承 // 251

14.6  案例学习:分子、原子和PDB文件 //254

14.6.1 Atom 类 // 255

14.6.2 Molecule 类 // 256

14.7 本章小结 //258

14.8 习题 //258

第15 章 测试与调试 // 262

15.1 为什么需要做程序测试 //262

15.2  案例学习:测试above_freezing //263

15.2.1  为above_freezing 选择测试样例 // 263

15.2.2  使用unittest 模块测试above_freezing // 264

15.3  案例学习:测试函数running_sum //267

15.3.1  为函数running_sum 选择测试样例 // 268

15.3.2  使用unittest 模块测试running_sum 函数 // 268

15.4 选择测试样例 //273

15.5 寻找程序错误 //273

15.6 本章小结 //274

15.7 习题 //274

第16 章 创建图形用户接口 // 277

16.1 使用tkinter 模块 //277

16.2 构建一个基本的GUI //278

16.2.1  在小部件中使用可修改变量 // 279

16.2.2  使用框架类型来组合小部件 // 280

16.2.3  使用输入框类型从用户处获取信息 // 281

16.3 模型、视图和控制器 //281

16.3.1 使用Lambda // 283

16.4 自定义可视化样式 //286

16.4.1 改变字体 // 286

16.4.2 改变颜色 // 286

16.4.3 小部件的布局 // 288

16.5 其他小部件简介 //289

16.5.1 使用文本 // 289

16.5.2 使用复选按钮 // 290

16.5.3 使用菜单 // 291

16.6 面向对象的GUI //292

16.7 本章小结 //293

16.8 习题 //294

第17 章 数据库 // 295

17.1 概述 //295

17.2 创建和填充 //296

17.2.1 保存更改 // 298

17.2.2 关闭连接 // 299

17.3 数据检索 //299

17.3.1 查询条件 // 301

17.4 更新和删除 //301

17.5 为缺失的数据使用NULL //302

17.6 使用连接来组合表格 //303

17.6.1 移除重复值 // 306

17.7 键和约束 //307

17.8 高级功能 //308

17.8.1 聚合 // 308

17.8.2 分组 // 308

17.8.3 自连接 // 309

17.8.4 嵌套查询 // 310

17.8.5 事务 // 312

17.9 本章小结 //313

17.10 习题 //314

参考文献 //316


本目录推荐