具体描述
产品特色
编辑推荐
Python之父作序推荐 知名Python编程从入门到实践教程书 基于Python3编写 提供代码示例和教学PPT
本书具有以下特点:
● 广泛使用计算机图形学——本书提供一个简单的图形软件包graphics.py作为示例。
● 生动有趣的例子——本书包含了完整的编程示例来解决实际问题。
● 亲切自然的行文——以自然的叙事风格介绍了重要的计算机科学概念。
● 灵活的螺旋式学习过程——简单地呈现概念,逐渐介绍新的思想,章节末加以巩固强化。
● 时机恰好地介绍对象——本书既不是严格的“早讲对象”,也不是“晚讲对象”,而是在命令式编程
的基础上简要地介绍了对象概念。
● 提供丰富的教学素材——提供了大量的章末习题。还提供代码示例和教学PPT下载。
本书以Python语言为工具教授计算机程序设计。本书强调解决问题、设计和编程是计算机科学的核心技能。本书特色鲜明、示例生动有趣、内容易读易学,适合Python入门程序员阅读,也适合高校计算机专业的教师和学生参考。
访问异步社区(www.epubit.com.cn)的本书页面,可下载本书示例代码、习题解答和教学PPT。
作者简介
John Zelle是美国Wartburg大学数学和计算机系教授。他负责教授Python程序设计课程,并且结合多年的教学经验编写了本书,在美国高校受到普遍的欢迎。他还从事VR、AI等方面的研究,发表了一些机器学习方面的论文。
内容简介
《Python程序设计 第3版》是面向大学计算机科学专业的教材。本书以Python语言为工具,采用相当传统的方法,强调解决问题、设计和编程是计算机科学的核心技能。
全书共13章,此外,还包含两个附录。第 1章到第5章介绍计算机与程序、编写简单程序、数字计算、对象和图形、字符串处理等基础知识。第6章到第8章介绍函数、判断结构、循环结构和布尔值等话题。第9章到第 13章着重介绍一些较为高档的程序设计方法,包括模拟与设计、类、数据集合、面向对象设计、算法设计与递归等。附录部分给出了Python快速参考和术语表。每一章的末尾配有丰富的练习,包括复习问题、讨论和编程联系等多种形式,帮助读者巩固该章的知识和技能。
《Python程序设计 第3版》特色鲜明、示例生动有趣、内容易读易学,适合Python入门程序员阅读,也适合高校计算机专业的教师和学生参考。
作者简介
John Zelle是美国Wartburg大学数学和计算机系教授。他负责教授Python程序设计课程,并且结合多年的教学经验编写了本书,在美国高校受到普遍的欢迎。他还从事VR、AI等方面的研究,发表了一些机器学习方面的论文。
目录
第 1章 计算机和程序 1
学习目标 1
1.1 通用机器 1
1.2 程序的力量 2
1.3 什么是计算机科学 2
1.4 硬件基础 3
1.5 编程语言 4
1.6 Python的“魔法” 6
1.7 Python程序内部 10
1.8 混沌与计算机 12
1.9 小结 13
1.10 练习 14
复习问题 14
第 2章 编写简单程序 17
学习目标 17
2.1 软件开发过程 17
2.2 示例程序:温度转换器 18
2.3 程序要素 19
2.3.1 名称 19
2.3.2 表达式 20
2.4 输出语句 22
2.5 赋值语句 23
2.5.1 简单赋值 23
2.5.2 赋值输入 24
2.5.3 同时赋值 26
2.6 确定循环 27
2.7 示例程序:终值 29
2.8 小结 31
2.9 练习 32
复习问题 32
第3章 数字计算 35
学习目标 35
3.1 数值数据类型 35
3.2 类型转换和舍入 38
3.3 使用math库 40
3.4 累积结果:阶乘 42
3.5 计算机算术的局限性 44
3.6 小结 46
3.7 练习 47
复习问题 47
第4章 对象和图形 52
学习目标 52
4.1 概述 52
4.2 对象的目标 53
4.3 简单图形编程 53
4.4 使用图形对象 56
4.5 绘制终值 60
4.6 选择坐标 64
4.7 交互式图形 66
4.7.1 获取鼠标点击 67
4.7.2 处理文本输入 68
4.8 graphics模块参考 70
4.8.1 GraphWin对象 70
4.8.2 图形对象 71
4.8.3 Entry对象 74
4.8.4 显示图像 74
4.8.5 生成颜色 75
4.8.6 控制显示更新(高档) 75
4.9 小结 76
4.10 练习 76
复习问题 76
第5章 序列:字符串、列表和文件 81
学习目标 81
5.1 字符串数据类型 81
5.2 简单字符串处理 84
5.3 列表作为序列 86
5.4 字符串表示和消息编码 87
5.4.1 字符串表示 87
5.4.2 编写编码器 88
5.5 字符串方法 89
5.5.1 编写解码器 89
5.5.2 更多字符串方法 92
5.6 列表也有方法 93
5.7 从编码到加密 94
5.8 输入/输出作为字符串操作 95
5.8.1 示例应用程序:
日期转换 95
5.8.2 字符串格式化 97
5.8.3 更好的零钱计数器 99
5.9 文件处理 99
5.9.1 多行字符串 100
5.9.2 文件处理 100
5.9.3 示例程序:批处理
用户名 103
5.9.4 文件对话框(可选) 103
5.10 小结 105
5.11 练习 106
复习问题 106
第6章 定义函数 111
学习目标 111
6.1 函数的功能 111
6.2 函数的非正式讨论 112
6.3 带有函数的终值程序 115
6.4 函数和参数:令人兴奋的
细节 116
6.5 返回值的函数 119
6.6 修改参数的函数 122
6.7 函数和程序结构 126
6.8 小结 128
6.9 练习 129
复习问题 129
第7章 判断结构 133
学习目标 133
7.1 简单判断 133
7.1.1 示例:温度警告 133
7.1.2 形成简单条件 135
7.1.3 示例:条件程序执行 136
7.2 两路判断 137
7.3 多路判断 140
7.4 异常处理 142
7.5 设计研究:三者大 144
7.5.1 策略1:比较每个值和
所有其他值 145
7.5.2 策略2:判断树 146
7.5.3 策略3:顺序处理 147
7.5.4 策略4:使用Python 148
7.5.5 一些经验 148
7.6 小结 149
7.7 练习 149
复习问题 149
第8章 循环结构和布尔值 153
学习目标 153
8.1 for循环:快速回顾 153
8.2 不定循环 154
8.3 常见循环模式 155
8.3.1 交互式循环 155
8.3.2 哨兵循环 156
8.3.3 文件循环 158
8.3.4 嵌套循环 160
8.4 布尔值计算 161
8.4.1 布尔运算符 161
8.4.2 布尔代数 163
8.5 其他常见结构 165
8.5.1 后测试循环 165
8.5.2 循环加一半 166
8.5.3 布尔表达式作为判断 166
8.6 示例:一个简单的事件循环 169
8.7 小结 172
8.8 练习 173
复习问题 173
第9章 模拟与设计 177
学习目标 177
9.1 模拟短柄壁球 177
9.1.1 一个模拟问题 177
9.1.2 分析与规格说明 178
9.2 伪随机数 178
9.3 自顶向下的设计 180
9.3.1 顶层设计 180
9.3.2 关注点分离 182
9.3.3 第 二层设计 182
9.3.4 设计simNGames 183
9.3.5 第三层设计 184
9.3.6 整理完成 186
9.3.7 设计过程总结 188
9.4 自底向上的实现 188
9.4.1 单元测试 188
9.4.2 模拟结果 189
9.5 其他设计技术 190
9.5.1 原型与螺旋式开发 190
9.5.2 设计的艺术 191
9.6 小结 191
9.7 练习 192
复习问题 192
第 10章 定义类 196
学习目标 196
10.1 对象的快速复习 196
10.2 示例程序:炮弹 197
10.2.1 程序规格说明 197
10.2.2 设计程序 197
10.2.3 程序模块化 199
10.3 定义新类 200
10.3.1 示例:多面骰子 201
10.3.2 示例:Projectile类 203
10.4 用类数据处理 205
10.5 对象和封装 207
10.5.1 封装有用的抽象 207
10.5.2 将类放在模块中 208
10.5.3 模块文档 208
10.5.4 使用多个模块 210
10.6 控件 210
10.6.1 示例程序:掷骰
子程序 211
10.6.2 创建按钮 211
10.6.3 构建骰子类 213
10.6.4 主程序 215
10.7 动画炮弹 216
10.7.1 绘制动画窗口 217
10.7.2 创建ShotTracker 218
10.7.3 创建输入对话框 219
10.7.4 主事件循环 220
10.8 小结 221
10.9 练习 222
复习问题 222
第 11章 数据集合 227
学习目标 227
11.1 示例问题:简单统计 227
11.2 应用列表 228
11.2.1 列表和数组 229
11.2.2 列表操作 229
11.2.3 用列表进行统计 231
11.3 记录的列表 235
11.4 用列表和类设计 237
11.5 案例分析:Python计算器 241
11.5.1 计算器作为对象 241
11.5.2 构建界面 241
11.5.3 处理按钮 243
11.6 案例研究:更好的炮弹动画 246
11.6.1 创建发射器 246
11.6.2 追踪多次射击 248
11.7 无顺序集合 251
11.7.1 字典基础 251
11.7.2 字典操作 252
11.7.3 示例程序:词频 253
11.8 小结 257
11.9 练习 257
复习问题 257
第 12章 面向对象设计 262
学习目标 262
12.1 OOD的过程 262
12.2 案例研究:壁球模拟 263
12.2.1 候选对象和方法 264
12.2.2 实现SimStats 265
12.2.3 实现RBallGame 266
12.2.4 实现Player 267
12.2.5 完整程序 268
12.3 案例研究:骰子扑克 270
12.3.1 程序规格说明 271
12.3.2 识别候选对象 271
12.3.3 实现模型 272
12.3.4 基于文本的UI 275
12.3.5 开发GUI 277
12.4 OO概念 282
12.4.1 封装 282
12.4.2 多态 283
12.4.3 继承 283
12.5 小结 284
12.6 练习 285
复习问题 285
第 13章 算法设计与递归 287
学习目标 287
13.1 查找 287
13.1.1 简单的查找问题 287
13.1.2 策略1:线性查找 288
13.1.3 策略2:二分查找 288
13.1.4 比较算法 289
13.2 递归问题解决 290
13.2.1 递归定义 291
13.2.2 递归函数 292
13.2.3 示例:字符串反转 293
13.2.4 示例:重组词 294
13.2.5 示例:快速指数 295
13.2.6 示例:二分查找 296
13.2.7 递归与迭代 296
13.3 排序算法 298
13.3.1 天真的排序:选择
排序 298
13.3.2 分而治之:归并排序 299
13.3.3 排序比较 301
13.4 难题 303
13.4.1 汉诺依塔 303
13.4.2 停机问题 306
13.4.3 结论 308
13.5 小结 308
13.6 练习 309
复习问题 309
附录A Python快速参考 314
附录B 术语表 323
《Python程序设计(第3版)》精彩内容预览 导言:开启你的编程之旅 你是否曾对电脑如何运作充满好奇?是否渴望亲手构建出色的应用程序?《Python程序设计(第3版)》将是你迈入精彩纷呈的编程世界最坚实的起点。本书并非枯燥的技术手册,而是一本循序渐进、注重实践的指南,旨在帮助零基础的读者快速掌握Python这门强大而富有魅力的编程语言。我们相信,通过清晰的讲解、丰富的示例和精心设计的练习,你将发现编程的乐趣,并能够自信地将创意转化为现实。 第一部分:Python基础——构筑你的编程基石 在这一部分,我们将从最基本、最核心的概念入手,为你搭建牢固的Python编程知识体系。 第一章:初识Python,拥抱极简 Python简介: 我们将深入探讨Python为何如此受欢迎,它在各个领域的广泛应用,以及它相比其他语言的独特优势,例如易读性、丰富的库生态系统以及跨平台兼容性。你将了解到Python不仅仅是一门编程语言,更是一种解决问题的强大工具。 Python的安装与环境配置: 别担心,我们为你准备了详尽的图文并茂的指南,让你轻松完成Python的安装,并配置好高效的开发环境。无论是Windows、macOS还是Linux,我们都会提供清晰的步骤,让你能够快速开始编码。 你的第一个Python程序: “Hello, World!”,这不仅仅是一句简单的问候,更是你敲响编程大门的第一个音符。我们将引导你编写并运行你的第一个Python程序,感受代码执行的魔力,并初步了解程序的运行机制。 Python的开发工具: 除了基本的文本编辑器,我们还将介绍一些流行的Python集成开发环境(IDE)和代码编辑器,例如VS Code、PyCharm等,它们能极大地提高你的编程效率,提供代码补全、语法高亮、调试等功能。 第二章:数据之舞——变量、数据类型与运算符 变量: 想象变量是存储信息的盒子,我们将学习如何给这些盒子命名,以及如何往里面装载不同的数据。 数据类型: Python拥有丰富的数据类型,我们将逐一探索: 整型(int): 用于表示整数,如10, -5, 0。 浮点型(float): 用于表示带小数的数字,如3.14, -0.5, 2.0。 字符串(str): 用于表示文本信息,如“你好,世界!”, “Python”。我们将学习如何创建、拼接和操作字符串。 布尔型(bool): 用于表示真(True)或假(False),是逻辑判断的基础。 运算符: 它们是进行数学计算和逻辑比较的工具: 算术运算符: 加(+)、减(-)、乘()、除(/)、取模(%)、幂()、整除(//)。 比较运算符: 等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)。 逻辑运算符: 与(and)、或(or)、非(not),它们用于组合和反转布尔表达式。 赋值运算符: 简单赋值(=),以及复合赋值如加等于(+=)、减等于(-=)等,让代码更简洁。 类型转换: 有时我们需要将一种数据类型转换为另一种,例如将字符串“123”转换为整数123,我们将学习如何进行安全的类型转换。 第三章:流程控制——让程序“思考” 条件语句(if, elif, else): 学习如何让程序根据不同的条件做出不同的决策。我们将通过实际例子,如判断用户输入的年龄是否成年,来掌握条件判断的强大能力。 循环语句(for, while): 当我们需要重复执行某段代码时,循环就派上用场了。 for循环: 适用于已知循环次数的情况,例如遍历列表中的每一个元素。我们将学习`range()`函数,让循环更加灵活。 while循环: 适用于条件未知,需要循环直到某个条件不再满足的情况,例如读取用户输入直到用户输入“退出”。 break和continue语句: 这两个关键字能帮助我们更精细地控制循环的执行流程,例如在满足某个条件时提前跳出循环(`break`),或跳过当前循环的剩余部分进入下一次循环(`continue`)。 第四章:数据容器——高效组织信息 列表(list): 有序、可变的数据集合,你可以把它想象成一个可以添加、删除、修改元素的数组。我们将学习如何创建列表、访问列表元素、添加和删除元素,以及列表的常用方法(如`append()`, `insert()`, `remove()`, `pop()`)。 元组(tuple): 有序、不可变的数据集合。一旦创建,元组的元素就不能被修改,这使得它在某些场景下比列表更安全。我们将学习如何创建元组、访问元组元素,以及元组的不可变性带来的优势。 字典(dict): 无序、可变键值对的集合。你可以将其类比为现实生活中的词典,通过“键”(key)来查找对应的“值”(value)。我们将学习如何创建字典、访问字典元素、添加和删除键值对,以及字典的常用方法(如`keys()`, `values()`, `items()`)。 集合(set): 无序、不重复的元素集合。集合主要用于进行成员测试、删除重复项以及进行数学上的集合运算(如并集、交集、差集)。 第二部分:Python进阶——掌握更强大的编程技法 在掌握了基础知识后,我们将进一步深入,学习更高级、更实用的Python编程技巧。 第五章:函数——代码的模块化与复用 函数的定义与调用: 学习如何创建自己的函数,将重复的代码块封装起来,提高代码的可读性和可维护性。 参数与返回值: 掌握函数如何接收输入(参数)以及如何输出结果(返回值)。我们将探讨位置参数、关键字参数、默认参数以及可变参数。 作用域: 理解局部变量和全局变量的区别,以及它们在程序中的生命周期,避免因变量作用域混淆而产生的错误。 递归: 学习一种强大的函数调用自身来解决问题的技巧,通过经典的斐波那契数列和阶乘问题,让你领略递归的魅力。 第六章:模块与包——组织和管理你的代码 模块(Module): 将相关的函数和变量组织到一个单独的文件中,方便复用。我们将学习如何导入和使用Python内置的模块(如`math`, `random`, `datetime`),以及如何创建自己的模块。 包(Package): 组织模块的更高层次的结构,就像文件夹一样,可以包含多个模块。我们将了解如何组织和使用包。 第三方库的安装与使用: Python拥有极其丰富的第三方库,它们极大地扩展了Python的功能。我们将学习如何使用`pip`工具安装和管理这些库,例如用于数据科学的NumPy和Pandas,用于Web开发的Flask和Django。 第七章:文件操作——与文件“对话” 文件的打开与关闭: 学习如何安全地打开和关闭文件,确保资源得到释放。 文件的读取: 掌握读取文本文件和二进制文件的不同方法,如逐行读取、一次性读取全部内容。 文件的写入: 学习如何向文件中写入文本和数据,并控制写入模式(覆盖或追加)。 `with`语句: 了解使用`with`语句可以自动管理文件的打开和关闭,让文件操作更加简洁和安全。 第八章:面向对象编程(OOP)——构建更复杂的系统 类(Class)与对象(Object): 理解面向对象编程的核心概念,如何通过类来定义对象的蓝图,以及如何创建对象。 属性(Attribute)与方法(Method): 学习如何为对象定义数据(属性)和行为(方法)。 封装、继承与多态: 深入理解面向对象的三大特性,它们如何帮助我们构建出模块化、可扩展、易于维护的代码。 构造函数与析构函数: 了解在对象创建和销毁时自动调用的特殊方法。 第三部分:Python实践——解决实际问题 理论结合实践是学习编程的最佳方式。《Python程序设计(第3版)》将引导你运用所学知识,解决一系列实际编程问题。 第九章:异常处理——应对程序中的“意外” `try-except`块: 学习如何捕获和处理程序运行过程中可能出现的错误(异常),避免程序崩溃,提升程序的健壮性。 不同的异常类型: 了解常见的异常类型,如`ZeroDivisionError`(除零错误)、`TypeError`(类型错误)、`FileNotFoundError`(文件未找到)等。 `finally`块: 学习如何使用`finally`块来执行无论是否发生异常都会执行的代码,常用于资源清理。 第十章:常用模块实践 `math`模块: 进行复杂的数学计算,如三角函数、对数、指数等。 `random`模块: 生成伪随机数,用于模拟、游戏开发等场景。 `datetime`模块: 处理日期和时间,进行日期计算、格式化等操作。 `os`模块: 操作系统交互,文件和目录操作,进程管理等。 `sys`模块: Python解释器相关的信息和操作。 第十一章:简单项目实战 小型命令行工具: 例如一个简单的文本计数器,可以统计文件中单词或字符的数量。 基础数据处理: 使用列表、字典等数据结构,进行数据的读取、过滤、排序和分析。 简单的文件管理脚本: 例如一个文件备份脚本,可以定期备份指定文件夹。 文本游戏: 编写一个简单的猜数字或文字冒险游戏,让你体验编程的乐趣。 附录: Python关键字列表 常用函数速查表 进一步学习资源推荐 结语: 《Python程序设计(第3版)》不仅仅是一本书,它更像是一位经验丰富的导师,将陪伴你踏上这段激动人心的编程旅程。我们鼓励你积极动手实践,多思考,多尝试。编程是一门实践的艺术,只有通过不断的练习,你才能真正掌握它,并用它来创造无限可能。希望本书能成为你学习Python的宝贵财富,祝你在编程的世界里,收获满满的成就感!