《Python语言程序设计》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)梁勇(Liangng.Y.D)著;李娜译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2015
  • ISBN:9787111487685
  • 页数:451 页
图书介绍:本书以问题驱动的方式对Python程序设计进行综合介绍。全书共分三个部分,首先介绍基本程序设计技术以及数据类型、变量、常量、简单函数等内容,随后利用抽象、封装和多态性来了解面向对象程序设计,最后通过对数据结构和算法的讲解,循序渐进,掌握Python程序设计。书中引入实例解释基本概念,同时提供大量不同难度的编程题,帮助读者理解和巩固。本书可作为高等院校相关专业的基础教材,也可作为Python语言及编程开发爱好者的参考资料。

第一部分 程序设计基础 2

第1章 计算机、程序和Python概述 2

1.1 引言 2

1.2 什么是计算机 3

1.2.1 中央处理器 4

1.2.2 比特和字节 4

1.2.3 内存 5

1.2.4 存储设备 5

1.2.5 输入和输出设备 6

1.2.6 通信设备 7

1.3 程序设计语言 8

1.3.1 机器语言 8

1.3.2 汇编语言 8

1.3.3 高级语言 8

1.4 操作系统 10

1.4.1 控制和管理系统行为 10

1.4.2 调度和分配系统资源 10

1.4.3 调度操作 10

1.5 Python的历史 11

1.6 开始学习Python 11

1.6.1 启动Python 12

1.6.2 创建Python源代码文件 13

1.6.3 使用Python完成算术运算 14

1.7 程序设计风格和文档 15

1.7.1 恰当的注释和注释风格 15

1.7.2 恰当的空格 15

1.8 程序设计错误 16

1.8.1 语法错误 16

1.8.2 运行时错误 16

1.8.3 逻辑错误 16

1.9 开始学习图形化程序设计 17

1.9.1 绘制图形并给图形添加颜色 17

1.9.2 将笔移到任何位置 19

1.9.3 绘制奥林匹克环标志 20

关键术语 21

本章总结 21

测试题 22

编程题 22

第2章 基本程序设计 25

2.1 引言 25

2.2 编写一个简单的程序 25

2.3 从控制台读取输入 27

2.4 标识符 29

2.5 变量、赋值语句和赋值表达式 29

2.6 同时赋值 31

2.7 定名常量 32

2.8 数值数据类型和运算符 32

2.8.1 运算符、∥和 33

2.8.2 运算符% 33

2.8.3 科学记数法 34

2.9 计算表达式和运算符优先级 35

2.10 增强型赋值运算符 35

2.11 类型转换和四舍五入 36

2.12 实例研究:显示当前时间 38

2.13 软件开发流程 39

2.14 实例研究:计算距离 42

关键术语 44

本章总结 44

测试题 45

编程题 45

第3章 数学函数、字符串和对象 50

3.1 引言 50

3.2 常见的Python函数 51

3.3 字符串和字符 54

3.3.1 ASCII码 54

3.3.2 统一码 54

3.3.3 函数ord和chr 54

3.3.4 转义序列 55

3.3.5 不换行打印 56

3.3.6 函数str 56

3.3.7 字符串连接操作 56

3.3.8 从控制台读取字符串 57

3.4 实例研究:最小数量的硬币 58

3.5 对象和方法简介 59

3.6 格式化数字和字符串 61

3.6.1 格式化浮点数 62

3.6.2 用科学记数法格式化 63

3.6.3 格式化成百分数 63

3.6.4 调整格式 63

3.6.5 格式化整数 63

3.6.6 格式化字符串 64

3.7 绘制各种图形 65

3.8 绘制带颜色和字体的图形 67

关键术语 69

本章总结 69

测试题 69

编程题 69

第4章 选择 73

4.1 引言 73

4.2 布尔类型、数值和表达式 73

4.3 产生随机数字 75

4.4 if语句 76

4.5 实例研究:猜生日 77

4.6 双向if-else语句 80

4.7 嵌套if和多向if-elif-else语句 82

4.8 选择语句中的常见错误 85

4.9 实例研究:计算身体质量指数 87

4.10 实例研究:计算税款 88

4.11 逻辑运算符 90

4.12 实例研究:判定闰年 92

4.13 实例研究:彩票 93

4.14 条件表达式 94

4.15 运算符的优先级和结合方向 95

4.16 检测一个对象的位置 96

关键术语 97

本章总结 97

测试题 98

编程题 98

第5章 循环 107

5.1 引言 107

5.2 while循环 108

5.2.1 实例研究:猜数字 110

5.2.2 循环设计策略 112

5.2.3 实例研究:多道减法题测验 112

5.2.4 根据用户确认控制循环 113

5.2.5 使用哨兵值控制循环 113

5.2.6 输入输出重定向 115

5.3 for循环 116

5.4 嵌套循环 118

5.5 最小化数值错误 119

5.6 实例研究 120

5.6.1 问题:找出最大公约数 120

5.6.2 问题:预测未来学费 121

5.6.3 问题:蒙特卡罗模拟 122

5.7 关键字break和continue 123

5.8 实例研究:显示素数 125

5.9 实例研究:随意行走 127

关键术语 129

本章总结 129

测试题 129

编程题 129

第6章 函数 138

6.1 引言 138

6.2 定义一个函数 139

6.3 调用一个函数 140

6.4 带返回值或不带返回值的函数 142

6.5 位置参数和关键字参数 145

6.6 通过传引用来传递参数 146

6.7 模块化代码 148

6.8 实例研究:将十进制数转换为十六进制数 150

6.9 变量的作用域 152

6.10 默认参数 154

6.11 返回多个值 155

6.12 实例研究:生成随机ASCII码字符 155

6.13 函数抽象和逐步求精 157

6.13.1 自顶向下设计 158

6.13.2 自顶向下和自底向上的实现 159

6.13.3 实现细节 160

6.13.4 逐步求精的优势 163

6.14 实例研究:可重用图形函数 163

关键术语 165

本章总结 165

测试题 165

编程题 166

第二部分 面向对象程序设计 176

第7章 对象和类 176

7.1 引言 176

7.2 为对象定义类 176

7.2.1 定义类 177

7.2.2 构造对象 178

7.2.3 访问对象成员 179

7.2.4 self参数 179

7.2.5 举例:使用类 180

7.3 UML类图 181

7.4 不变对象和可变对象 184

7.5 隐藏数据域 186

7.6 类的抽象与封装 188

7.7 面向对象的思考 191

关键术语 193

本章总结 194

测试题 194

编程题 194

第8章 更多字符串和特殊方法 198

8.1 引言 198

8.2 str类 198

8.2.1 创建字符串 199

8.2.2 处理字符串的函数 199

8.2.3 下标运算符[] 200

8.2.4 截取运算符[start: end] 200

8.2.5 连接运算符+和复制运算符 201

8.2.6 in和not in运算符 201

8.2.7 比较字符串 202

8.2.8 迭代字符串 203

8.2.9 测试字符串 203

8.2.10 搜索子串 204

8.2.11 转换字符串 205

8.2.12 删除字符串中的空格 206

8.2.13 格式化字符串 207

8.3 实例研究:校验回文串 208

8.4 实例研究:将十六进制数转换为十进制数 209

8.5 运算符重载和特殊方法 211

8.6 实例研究:Rational类 212

关键术语 216

本章总结 217

测试题 217

编程题 217

第9章 使用Tkinter进行GUI程序设计 223

9.1 引言 223

9.2 开始使用Tkinter 223

9.3 处理事件 224

9.4 小构件类 226

9.5 画布 231

9.6 几何管理器 233

9.6.1 网格管理器 234

9.6.2 包管理器 234

9.6.3 位置管理器 235

9.7 实例研究:贷款计算器 236

9.8 显示图像 238

9.9 菜单 239

9.10 弹出菜单 241

9.11 鼠标、按键事件和绑定 243

9.12 动画 245

9.13 滚动条 248

9.14 标准对话框 249

关键术语 250

本章总结 251

测试题 251

编程题 251

第10章 列表 258

10.1 引言 258

10.2 列表基础 259

10.2.1 创建列表 259

10.2.2 列表是一种序列类型 260

10.2.3 列表使用的函数 260

10.2.4 下标运算符[] 260

10.2.5 列表截取[start:end] 261

10.2.6 +、*和innot in运算符 262

10.2.7 使用for循环遍历元素 262

10.2.8 比较列表 263

10.2.9 列表解析 263

10.2.10 列表方法 264

10.2.11 将字符串分成列表 265

10.2.12 输入列表 265

10.2.13 对列表移位 266

10.2.14 简化代码 266

10.3 实例研究:乐透数 268

10.4 实例研究:一副扑克牌 270

10.5 扑克牌图形用户界面 272

10.6 复制列表 273

10.7 将列表传递给函数 274

10.8 从函数返回一个列表 276

10.9 实例研究:统计每个字母的出现次数 277

10.10 查找列表 279

10.10.1 线性查找法 280

10.10.2 二分查找法 280

10.11 排序列表 282

10.11.1 选择排序 282

10.11.2 插入排序 284

10.12 实例学习:弹球 286

关键术语 288

本章总结 288

测试题 289

编程题 289

第11章 多维列表 298

11.1 引言 298

11.2 处理二维列表 299

11.2.1 使用输入值初始化列表 299

11.2.2 使用随机数初始化列表 299

11.2.3 打印列表 299

11.2.4 对所有元素求和 300

11.2.5 按列求和 300

11.2.6 找出和最大的行 300

11.2.7 随意打乱 301

11.2.8 排序 301

11.3 将二维列表传递给函数 302

11.4 问题:给多选题评分 303

11.5 问题:找出距离最近的点对 304

11.6 图形用户界面:找出距离最近的点对 306

11.7 问题:数独 307

11.8 实例研究:数独图形用户界面 310

11.9 多维列表 312

11.9.1 问题:每日温度和湿度 313

11.9.2 问题:猜生日 314

关键术语 315

本章总结 315

测试题 316

编程题 316

第12章 继承和多态 330

12.1 引言 330

12.2 父类和子类 330

12.3 覆盖方法 335

12.4 object类 336

12.5 多态和动态绑定 339

12.6 isinstance函数 340

12.7 实例研究:可重用时钟 342

12.8 类之间的关系 347

12.8.1 关联 347

12.8.2 聚合和组合 348

12.9 实例研究:设计Course类 349

12.10 为栈设计类 350

12.11 实例研究:FigureCanvas类 352

关键术语 355

本章总结 355

测试题 355

编程题 355

第13章 文件和异常处理 364

13.1 引言 364

13.2 文本输入和输出 364

13.2.1 打开一个文件 365

13.2.2 写入数据 366

13.2.3 测试文件的存在性 367

13.2.4 读数据 367

13.2.5 从文件读取所有数据 370

13.2.6 追加数据 371

13.2.7 读写数值数据 371

13.3 文件对话框 373

13.4 实例研究:统计文件中的字符个数 375

13.5 从网站上获取数据 376

13.6 异常处理 378

13.7 抛出异常 381

13.8 使用对象处理异常 383

13.9 定义自定制异常类 384

13.10 使用Pickling进行二进制IO 388

13.10.1 卸载和加载对象 388

13.10.2 检测文件末尾 389

13.11 实例研究:地址簿 390

关键术语 393

本章总结 393

测试题 394

编程题 394

第三部分 数据结构和算法 398

第14章 元组、集合和字典 398

14.1 引言 398

14.2 元组 399

14.3 集合 401

14.3.1 创建集合 401

14.3.2 操作和访问集合 402

14.3.3 子集和超集 402

14.3.4 相等性测试 403

14.3.5 集合运算 403

14.4 比较集合和列表的性能 407

14.5 实例研究:统计关键字 408

14.6 字典 409

14.6.1 创建一个字典 410

14.6.2 添加、修改和获取值 410

14.6.3 删除条目 410

14.6.4 循环条目 411

14.6.5 len函数 411

14.6.6 检测一个关键字是否在字典中 411

14.6.7 相等性检测 411

14.6.8 字典方法 412

14.7 实例研究:单词的出现次数 413

关键术语 415

本章总结 415

测试题 416

编程题 416

第15章 递归 419

15.1 引言 419

15.2 实例研究:计算阶乘 420

15.3 实例研究:计算斐波那契数 422

15.4 使用递归解决问题 424

15.5 递归辅助函数 426

15.5.1 选择排序 427

15.5.2 二分查找 427

15.6 实例研究:求出目录的大小 428

15.7 实例研究:汉诺塔 430

15.8 实例研究:分形 432

15.9 实例研究:八皇后 435

15.10 递归和迭代 437

15.11 尾递归 438

关键术语 439

本章总结 439

测试题 439

编程题 439

附录A Python关键字 446

附录B ASCII字符集 447

附录C 数制系统 448