您好,欢迎来到聚文网。 登录 免费注册
Python程序设计

Python程序设计

  • 装帧: 平装
  • 出版社: 机械工业出版社
  • 作者: (美)戴维 I.施奈德(David I Schneider) 著;车万翔 等 译
  • 出版日期: 2016-02-01
  • 商品条码: 9787111526278
  • 版次: 1
  • 开本: 16开
  • 页数: 369
  • 出版年份: 2016
定价:¥79 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书通过阐述Python语言的基础知识,以及使用Python语言的实际开发应用实例,来介绍如何使用计算机进行问题求解。丰富的例子和习题展示了在真实世界中是如何使用计算机的。目前Python在软件产业中已经成为很广泛使用的编程语言之一,对于初学者,Python也是理解计算机程序开发的理想工具。
作者简介
戴维I.施奈德,(David I.Schneider)  拥有麻省理工学院数学博士学位,在马里兰大学任教三十多年。他编写了28本书,一半以上是计算机程序设计类图书。他开发了3个定制的软件包。为55本数学教材提供教辅资料。他与计算机的渊源可以追溯到1962年,当时他在MIT林肯实验室设计了一个专用计算机用于纠正通信系统中的误差。
目录
出版者的话
译者序
前言
第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
摘要
前  言An Introduction to Programming Using Python自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. Schneiderdis@alum.mit.edu

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网