Python程序设计
作者 : [美]戴维 I. 施奈德(David I. Schneider) 著
译者 : 车万翔 等译
丛书名 : 计算机科学丛书
出版日期 : 2016-03-01
ISBN : 978-7-111-52627-8
定价 : 79.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 379
开本 : 16
原书名 : An Introduction to Programming Using Python
原出版社: Pearson Education Asia
属性分类: 教材
包含CD :
绝版 :
图书简介

本书通过大量的实际开发应用实例阐述Python语言的基础知识,介绍如何使用计算机进行问题求解、结构化编程以及面向对象编程。本书共8章,主要内容包括:计算机与问题求解简介,核心对象、变量、输入和输出,控制流结构,函数,数据处理,异常处理、随机数、递归等其他主题,面向对象编程,图形用户界面。此外,各节后都给出大量的习题、编程项目、实践问题等。
本书重点突出,内容丰富,适合作为计算机及相关专业学生的教材或教学参考书,也适合学习Python语言的初学者使用。

图书特色

目前Python在软件行业中已经成为最广泛使用的编程语言之一,对于初学者,Python也是理解计算机程序开发的理想工具。本书通过阐述Python语言的基础知识,以及使用Python语言的实际开发应用实例,介绍如何使用计算机进行问题求解、结构化编程以及面向对象编程。
本书共8章,主要内容包括:计算机与问题求解简介,核心对象、变量、输入和输出,控制流结构,函数,数据处理,异常处理、随机数、递归等其他主题,面向对象编程,图形用户界面。此外,各节后都给出了大量的习题、编程项目、实践问题等,帮助读者进一步巩固学习。

戴维 I. 施奈德(David I. Schneider) 拥有麻省理工学院数学博士学位,在马里兰大学任教三十多年。他编写了28本书,一半以上是计算机程序设计类图书。他开发了3个定制的软件包,为55本数学教材提供教辅资料。他与计算机的渊源可以追溯到1962年,当时他在MIT林肯实验室设计了一个专用计算机用于纠正通信系统中的误差。

图书前言

自20世纪90年代诞生以来,Python已经成为软件行业中应用最为广泛的编程语言之一。学习第一门编程语言的学生也发现,Python是理解计算机程序开发的理想工具。
这本书的写作目标如下:
1. 重点突出。集中介绍重要的主题,而不是泛泛地覆盖许多主题。
2. 使用学生耳熟能详的例子和相关习题。经常使用真实的数据。例子简洁明了,尽量向学生展示编程技术,而不去分散他们的注意力。
3. 通俗易懂,内容丰富。首先讨论每个主题的要点,然后再以注释的形式展示次要的细节。
4. 教授好的编程实践,与现代编程方法相接轨。全面讨论问题求解技术、结构化编程以及面向对象编程。
5. 深入介绍计算机的主要应用。
本书特色
编程项目。从第2章开始,每章都包含编程项目。编程项目反映了计算机的不同使用方法。数量多、难度不一的编程项目使本书适用于不同兴趣和层次的学生。后面章节的一些编程项目可以留作学期末项目。
大多数章节的习题。教授编程的每个章节都有一个习题集。这些习题既可以增强学生对这些章节关键思想的理解,又为学生探索更多的应用提出了挑战。大部分习题集需要学生跟踪程序、找到错误以及编写程序。本书中,除了6.3节以及第8章外,奇数编号习题的答案在本书的最后给出。几乎每个编程习题以及编程项目都配有一个可能的输出。
实践问题。在每节的习题之前,都有一些精选的实践问题。习题后面是完备的答案。实践问题经常集中于那些可能易混淆的要点上,在学生深入思考之后,就会透彻理解这些要点。在做习题之前,读者应该认真地试着解一下这些实践问题并且研究它们的答案。
注释。在每节最后,都有一些扩展以及新的主题,它们被置于“注释”部分,以便这些内容不会影响行文的流畅性。
关键术语和概念。在第2章到第8章中,在每章的最后给出关键术语和概念(以及示例)。
应用问题指南。该部分提供了程序的索引,讨论多种主题,包括商务、经济、数学以及体育。
解题手册。学生解题手册包括奇数编号习题的答案(不包括编程项目的答案)。教师解题手册包括所有习题和编程项目的答案。两本解题手册都是PDF格式的,并且能够从Pearson的网站上下载。
源代码和数据文件。全部示例的程序以及习题所需的数据文件都能从Pearson的网站上下载。
教师和学生资源
教师资源
测试项文件
PPT课件
教师解题手册
所有示例的程序以及习题和编程项目的答案(习题所需的数据文件在Programs文件夹下)
学生资源
学生解题手册
示例的程序(习题所需的数据文件在Programs文件夹下)
致谢
在本书写作过程中,许多优秀的研究者和程序员给予了富有建设性的意见和建议,我由衷地对他们的贡献表示感谢。以下审阅者为本书的编写提供了大量有价值的建议:
Daniel Solarek, 托莱多大学
David M. Reed, 首都大学
Debraj De, 佐治亚州
Desmond Chun, 夏波学院
Mark Coffey, 科罗拉多矿业大学
Randall Alexander, 查尔斯顿学院
Vineyak Tanksale, 鲍尔州立大学
Zhi Wei, 新泽西理工学院
很多人为本书的成功出版提供了帮助。我要感谢Pearson的团队,本书的出版离不开他们的支持和鼓励,特别要感谢计算机科学部门程序管理经理Carole Synyder,计算机科学部门编辑助理Kelsey Loanes和产品经理主管Scott Disanno。
我要感谢Jacob Saina在本书编写过程中各个阶段的帮助。出版编辑Pavithra Jayapaul和Greg Dulles为本书的出版做了许多工作,使之能按计划推进。我要感谢阿克伦大学的Kathy Liszka博士,他为本书制作了题库,感谢莱托诺大学的Steve Armstrong博士,他为本书制作了配套的PPT课件。本书在出版过程中也离不开来自Jouve India的Shylaja Gattupalli的帮助。
特别要感谢我的主编Tracy Johnson。她的想法和热情为本书的筹备工作提供了巨大的帮助。

David I. Schneider
dis@alum.mit.edu

上架指导

计算机\程序设计

封底文字

目前Python在软件行业中已经成为最广泛使用的编程语言之一,对于初学者,Python也是理解计算机程序开发的理想工具。本书通过阐述Python语言的基础知识,以及使用Python语言的实际开发应用实例,介绍如何使用计算机进行问题求解、结构化编程以及面向对象编程。
本书共8章,主要内容包括:计算机与问题求解简介,核心对象、变量、输入和输出,控制流结构,函数,数据处理,异常处理、随机数、递归等其他主题,面向对象编程,图形用户界面。此外,各节后都给出了大量的习题、编程项目、实践问题等,帮助读者进一步巩固学习。

作者简介

[美]戴维 I. 施奈德(David I. Schneider) 著:戴维 I. 施奈德(David I. Schneider) 拥有麻省理工学院数学博士学位,在马里兰大学任教三十多年。他编写了28本书,一半以上是计算机程序设计类图书。他开发了3个定制的软件包,为55本数学教材提供教辅资料。他与计算机的渊源可以追溯到1962年,当时他在MIT林肯实验室设计了一个专用计算机用于纠正通信系统中的误差。

译者简介

车万翔 等译:暂无简介

译者序

乔布斯曾经说过:“每个人都应该学习编程,因为它教你如何思考。”计算已经成为继实验归纳和理论推演之后的一种新型的科研手段,越来越多的学科被冠以计算之名,如计算生物学、计算物理学、计算语言学、计算社会学等等。以计算社会学为例,过去社会学研究一般是以问卷调查的方式进行。现在随着互联网、尤其是社交网络的蓬勃发展,社会学家已经可以用大数据计算的方式来研究社会学问题了,而且往往会获得更真实有趣的结论。因此,无论你学习的是什么专业,都应该开始学习编程。
然而,过去很长一段时间,很多人都是以C语言作为入门编程语言。C 语言具有代码简洁紧凑、执行效率高、贴近硬件、可移植性好等优点,广泛应用于开发系统软件、嵌入式软件等。但是,随着计算机技术的发展,我们可以使用它来解决越来越多的问题,其应用场合也不局限于计算机学科。在这种情况下,C 语言这种“低级”语言已经越来越难适应计算机发展的潮流,我们需要一种简单易学且能解决更实际问题的语言。Python 语言恰好能弥补 C 语言的不足,它不但功能强大,而且易学易用,有人甚至说,读Python代码就像在读英语。
目前,市面上很多 Python 语言的图书多是面向有一定编程基础、想要尽快掌握一门新语言的读者。因此,它们更注重介绍 Python 语言的语法和应用特性。作为教科书,本书面向零基础编程的读者,以 Python 语言作为工具,介绍用计算机解决实际问题的基本思想和方法。因此,在内容组织上,不是面面俱到地介绍 Python 语言的诸多细节,而是只介绍那些最基本、最重要的概念,并将重点放到实际的应用上,为此提供了大量的编程项目、习题和实践问题。同时,本书还采用了大量真实数据的例子,通过解决这些问题,可以使读者亲身感受到编程魅力之所在。
我们要感谢对本书的翻译有所襄助的老师和学生们。本书由车万翔、赵妍妍、叶麟和袁永峰四位主译,他们都是哈尔滨工业大学的老师,并面向计算机学院主讲“高级语言程序设计(Python)”课程。李胜秋、徐梓翔也对本书部分内容的初译做了很多工作,机械工业出版社华章分社策划编辑朱劼、本书责任编辑缪杰在本书的整个翻译过程中提供了许多帮助,在此予以衷心感谢。
译文虽经多次修改和校对,但由于译者的水平有限,加之时间仓促,疏漏及缺点、错误在所难免,我们真诚地希望读者不吝赐教,不胜感激之至。

车万翔
2015年10月于哈尔滨工业大学

图书目录

出版者的话
译者序
前言
第1章 计算与问题求解简介 1
1.1 计算与Python简介 1
1.2 程序开发周期 3
1.2.1 在计算机上执行任务 3
1.2.2 程序规划 4
1.3 编程工具 4
1.3.1 流程图 5
1.3.2 伪代码 6
1.3.3 层次结构图 7
1.3.4 判断结构 7
1.3.5 判断纽约按数字编号街道方向的算法 8
1.3.6 循环结构 9
1.3.7 班级平均成绩算法 9
1.4 Python简介 11
1.4.1 启动IDLE 11
1.4.2 Python shell 12
1.4.3 Python代码编辑器 13
1.4.4 打开程序 15
第2章 核心对象、变量、输入和输出 19
2.1 数值 19
2.1.1 两种数值类型:整型和浮点型 19
2.1.2 算术运算符 19
2.1.3 print函数 19
2.1.4 变量 20
2.1.5 abs、int与round函数 21
2.1.6 增量赋值 22
2.1.7 其他两种整型运算符 22
2.1.8 括号与优先级 23
2.1.9 三种类型的错误 23
2.1.10 内存中的数值对象 24
2.2 字符串 29
2.2.1 字符串字面量 29
2.2.2 变量 30
2.2.3 索引和切片 30
2.2.4 反向索引 31
2.2.5 切片的默认边界 31
2.2.6 字符串连接 32
2.2.7 字符串重复 32
2.2.8 字符串函数和方法 32
2.2.9 链式方法 33
2.2.10 input函数 33
2.2.11 int、float、eval和str函数 33
2.2.12 内部文档 35
2.2.13 行延续 35
2.2.14 索引和切片越界 35
2.3 输出 42
2.3.1 print的可选参数sep 42
2.3.2 print的可选参数end 42
2.3.3 转义序列 43
2.3.4 域内输出对齐 43
2.3.5 使用format方法对齐输出 44
2.4 列表、元组和文件 50
2.4.1 列表对象 50
2.4.2 切片 51
2.4.3 split和join方法 52
2.4.4 文本文件 53
2.4.5 元组对象 54
2.4.6 嵌套列表 55
2.4.7 不可变和可变对象 55
2.4.8 列表复制 56
2.4.9 索引、删除和切片越界 56
关键术语和概念 62
编程项目 64
第3章 控制流结构 67
3.1 关系和逻辑运算符 67
3.1.1 ASCII值 67
3.1.2 关系运算符 68
3.1.3 列表元素的排序 69
3.1.4 逻辑运算符 70
3.1.5 短路求值 71
3.1.6 布尔数据类型 72
3.1.7 三种返回布尔值的方法 72
3.1.8 简化条件 73
3.2 判断结构 77
3.2.1 if-else语句 78
3.2.2 if语句 79
3.2.3 嵌套的if-else 语句 80
3.2.4 elif子句 81
3.2.5 使用if-elif-else语句的输入验证 83
3.2.6 True和False 84
3.3 while循环 92
3.3.1 while循环 92
3.3.2 break 语句 95
3.3.3 continue语句 95
3.3.4 创建菜单 96
3.3.5 无限循环 97
3.4 for循环 103
3.4.1 等差数列的循环遍历 103
3.4.2 range函数的步长值 105
3.4.3 for循环的嵌套 106
3.4.4 字符串中字符的循环遍历 107
3.4.5 遍历列表或元组元素的循环遍历 107
3.4.6 文本文件的行循环遍历 109
3.4.7 pass语句 110
3.4.8 使用文本文件的内容创建列表 110
关键术语和概念 120
编程项目 121
第4章 函数 125
4.1 函数(第一部分) 125
4.1.1 内建函数 125
4.1.2 用户自定义函数 125
4.1.3 具有一个参数的函数 126
4.1.4 向函数传值 127
4.1.5 具有多个参数的函数 128
4.1.6 返回布尔型或列表型的函数 130
4.1.7 无返回值的函数 131
4.1.8 无参数的函数 132
4.1.9 变量作用域 133
4.1.10 命名常量 134
4.1.11 库模块 135
4.2 函数(第二部分) 144
4.2.1 调用其他函数的函数 144
4.2.2 返回多个值的函数 144
4.2.3 列表解析 146
4.2.4 默认值 147
4.2.5 按参数名传递 147
4.2.6 自定义排序 149
4.2.7 Lambda表达式 150
4.2.8 sorted函数 150
4.3 程序设计 160
4.3.1 自顶向下的设计 160
4.3.2 结构化编程 162
4.3.3 结构化编程的优势 162
4.3.4 面向对象编程 163
4.3.5 相关引用 163
关键术语和概念 163
编程项目 165
第5章 数据处理 168
5.1 数据处理(第一部分) 168
5.1.1 读取文本文件 168
5.1.2 创建文本文件 170
5.1.3 向已有文本文件中添加行 173
5.1.4 修改文本文件中的元素 173
5.1.5 集合 174
5.1.6 集合推导 175
5.1.7 集合论方法 175
5.1.8 在文件中使用集合论的方法 175
5.2 数据处理(第二部分) 183
5.2.1 CSV文件 183
5.2.2 访问CSV文件中的数据 183
5.2.3 使用列表分析CSV文件中的数据 184
5.2.4 分析数值数据 185
5.2.5 Excel和CSV文件 186
5.3 字典 195
5.3.1 字典 195
5.3.2 dict函数 197
5.3.3 从文本文件中创建字典 198
5.3.4 使用字典作为频率表 199
5.3.5 在二进制文件中存储字典 200
5.3.6 值为字典的字典 201
5.3.7 从字典中获取顺序数据 202
5.3.8 使用元组作为字典的键 203
5.3.9 字典推导 204
关键术语和概念 209
编程项目 211
第6章 其他主题 216
6.1 异常处理 216
6.1.1 异常 216
6.1.2 try语句 217
6.1.3 else与finally子句 218
6.2 生成随机数 223
6.2.1 random模块中的函数 223
6.2.2 机会游戏 223
6.3 海龟图 229
6.3.1 坐标 229
6.3.2 turtle模块中的方法 229
6.3.3 矩形 230
6.3.4 旗帜 232
6.3.5 write方法 233
6.3.6 柱状图 234
6.3.7 折线图 235
6.4 递归 239
6.4.1 递归的指数计算函数 239
6.4.2 递归的回文生成函数 241
6.4.3 递归的分形计算函数 241
关键术语和概念 246
编程项目 247
第7章 面向对象编程 250
7.1 类与对象 250
7.1.1 内建类 250
7.1.2 用户自定义类 250
7.1.3 初始化方法的其他形式 253
7.1.4 类定义中方法的数量 253
7.1.5 对象列表 255
7.2 继承 262
7.2.1 学期成绩类 262
7.2.2 is-a关系 264
7.2.3 isinstance函数 264
7.2.4 向子类中添加新的实例变量 265
7.2.5 覆盖方法 266
7.2.6 多态 268
关键术语和概念 273
编程项目 274
第8章 图形用户界面 276
8.1 控件 276
8.1.1 什么是图形用户界面 276
8.1.2 按钮控件 277
8.1.3 标签控件 278
8.1.4 输入控件 279
8.1.5 只读输入控件 280
8.1.6 列表框控件 281
8.1.7 滚动条控件 283
8.2 网格布局管理器 288
8.2.1 网格 288
8.2.2 sticky属性 290
8.2.3 向列表框添加垂直滚动条 290
8.2.4 设计窗体布局 291
8.3 编写GUI程序 295
8.3.1 将TUI程序改写成GUI程序 295
8.3.2 将文件加载到列表框中 297
8.3.3 用面向对象方式编写GUI程序 298
关键术语和概念 302
编程项目 304
附录A ASCII值 306
附录B 保留字 308
附录C 安装Python和IDLE 309
奇数编号习题答案 311
索引 359

教学资源推荐
作者: 郝玉洁
作者: (美)Kenneth C.Louden
作者: [美]加里·R. 赖特(Gary R. Wright),W. 理查德·史蒂文斯(W. Richard Stevens) 著
参考读物推荐
作者: Mike Keith; Merrick Schincariol
作者: [英]大卫·格里菲思(David Griffiths),[英]道恩·格里菲思(Dawn Griffiths) 著
作者: 杨云海 著
作者: Steve Suehring