新書推薦:

《
幼儿园美工区环境创设与活动指导
》
售價:HK$
79.2

《
李小龙功夫之道
》
售價:HK$
54.8

《
新民说·哲学家与狼
》
售價:HK$
74.8

《
海权与陆权的变局
》
售價:HK$
107.8

《
《西南联大名师课(全10册)》中国历史·中国文学·中国哲学·诸子百家·诗词曲赋·文化常识·人文精神·
》
售價:HK$
657.8

《
天命无常:五代十国 优酷人文·“梅毅说中国史”系列(全三册)
》
售價:HK$
151.8

《
武王墩:亲历2020—2024楚王墓发掘
》
售價:HK$
96.8

《
异化
》
售價:HK$
94.6
|
| 編輯推薦: |
本书旨在采用以基础为先的教学方法,帮助学生在更广泛的情境中学习问题解决思路和程序设计方法,从而创建高效、优雅的代码,适用于Python程序设计和数据结构入门课程。书中首先介绍选择、循环和函数等基本编程概念和技巧,然后才引入自定义类。本书还配有不同难度的问题和练习,涵盖有趣的应用领域,以激发灵感,激励学生学习。第3版新增了数据结构主题,内容、示例和练习均与主流趋势保持同步。 本书中文版分为基础篇和进阶篇,基础篇对应原书的第1~14章,进阶篇对应原书的第15~23章,便于教师按需选择教材。 本书特色 以问题驱动、基础为先的方法进行介绍,侧重于问题解决思路,而非语法。 从基础开始,循序渐进地讲解,先教授基本概念和技巧,再引入自定义类。 涵盖从基础到面向对象程序设计,从简单函数到STL,再到简单数据类型和经典结构的广泛主题。 编程练习按难度分组,为学生提供大量实践和应用技能的机会。 书中有丰富的来自各个领域的例子和问题,为学习概念提供了有趣的背景。 采用灵活的章节顺序,允许教师跳过或稍后处理图形内容。
|
| 內容簡介: |
|
本书首先介绍Python基础知识,在带领读者编写自定义类之前,先介绍关于选择结构、循环结构和函数的基本编程概念和技术。然后介绍如何使用Python解决问题。不同难度的练习和问题涵盖了多个有趣的应用领域。本书包含大量练习题,指导读者创建高效、优雅的代码,在实践中掌握编程技巧。第3版新增了关于数据结构的内容,并更新了大量示例和练习。
|
| 關於作者: |
|
梁勇(Y. Daniel Liang) 佐治亚南方大学计算机科学系教授。之前曾是普渡大学计算机科学系副教授,并曾两次获得普渡大学杰出研究奖。他撰写了30多本书籍,其中,Java教程在美国大学中采用率极高。他是“Java Champion”荣誉得主,并在世界各地为程序员和学生做Java语言及技术方面的讲座。
|
| 目錄:
|
目 录 Introduction to Python Programming and Data Structures, Third Edition 第1章 计算机、程序和Python 简介 1 1.1 概述 1 1.2 什么是计算机 2 1.3 程序设计语言 7 1.4 操作系统 10 1.5 Python的发展历史 12 1.6 Python入门 13 1.7 程序设计风格和文档 18 1.8 程序设计错误 19 1.9 图形程序设计入门 21 第2章 程序设计初步 33 2.1 概述 34 2.2 编写一个简单的程序 34 2.3 从控制台读取输入 36 2.4 标识符 39 2.5 变量、赋值语句和表达式 40 2.6 同时赋值 43 2.7 命名常量 43 2.8 数值数据类型和运算符 44 2.9 案例研究:零钱兑换 48 2.10 表达式求值以及运算符优先级 50 2.11 复合赋值运算符 51 2.12 类型转换和数值舍入 53 2.13 案例研究:显示当前时间 55 2.14 软件开发过程 57 2.15 案例研究:计算距离 61 第3章 选择结构 77 3.1 概述 78 3.2 布尔类型、布尔值和布尔表达式 78 3.3 生成随机数 80 3.4 if语句 82 3.5 双分支if-else语句 84 3.6 嵌套的if语句和多分支 if-elif-else语句 87 3.7 选择语句中的常见错误 90 3.8 案例研究:计算体重指数 91 3.9 案例研究:计算个人所得税 93 3.10 逻辑运算符 96 3.11 案例研究:判断闰年 100 3.12 案例研究:彩票抽奖 101 3.13 条件表达式 103 3.14 Python 3.10版本中的match-case语句 104 3.15 运算符优先级和结合性 106 3.16 检测目标的位置 108 第4章 数学函数、字符串和对象 129 4.1 概述 130 4.2 常用的Python函数 130 4.3 字符串和字符 137 4.4 案例研究:使用字符串改进彩票 抽奖程序 149 4.5 对象和方法简介 150 4.6 字符串方法 152 4.7 案例研究 158 4.8 格式化数值和字符串 161 4.9 绘制各种不同类型的形状 168 4.10 使用颜色和字体进行绘制 171 第5章 循环结构 187 5.1 概述 187 5.2 while循环 188 5.3 案例研究:猜数游戏 192 5.4 循环设计策略 195 5.5 使用用户确认和哨兵值控制 循环 196 5.6 for循环 199 5.7 嵌套循环 201 5.8 最小化数值误差 202 5.9 案例研究 204 5.10 关键字break和continue 209 5.11 案例研究:测试回文 212 5.12 案例研究:显示素数 214 5.13 案例研究:随机游走 216 第6章 函数 236 6.1 概述 237 6.2 定义函数 238 6.3 调用函数 239 6.4 返回值的函数和不返回值的 函数 243 6.5 位置参数和关键字参数 247 6.6 按引用值传递参数 247 6.7 模块化编码 249 6.8 变量的作用域 252 6.9 默认参数 255 6.10 返回多个值 256 6.11 案例研究:随机生成ASCII 字符 257 6.12 案例研究:十六进制转换为 十进制 259 6.13 案例研究:函数抽象和逐 步求精 262 6.14 案例研究:可重用的图形 函数 268 第7章 列表 293 7.1 概述 294 7.2 列表基础 294 7.3 案例研究:分析数值 307 7.4 案例研究:一副扑克牌 308 7.5 复制列表 311 7.6 将列表传递给函数 312 7.7 从函数中返回列表 315 7.8 案例研究:统计每个字母出现 的次数 316 7.9 列表查找 318 7.10 列表排序 323 第8章 多维列表 341 8.1 概述 341 8.2 处理二维列表 342 8.3 将二维列表传递给函数 345 8.4 问题:对单项选择题进行评分 346 8.5 问题:寻找距离最近的点对 347 8.6 问题:数独游戏 350 8.7 多维列表 354 第9章 对象和类 381 9.1 概述 382 9.2 定义对象的类 382 9.3 UML类设计 390 9.4 使用Python库中的类: datetime类 393 9.5 不可变对象与可变对象 394 9.6 隐藏数据字段 395 9.7 类的抽象和封装 398 9.8 面向对象的程序设计思维 402 9.9 运算符重载和特殊方法 404 9.10 案例研究:Rational类 407 第10章 基于Tkinter的GUI编程 基础 425 10.1 概述 426 10.2 Tkinter入门 426 10.3 处理事件 429 10.4 组件类 430 10.5 Canvas 435 10.6 几何图形管理器 438 10.7 案例研究:贷款计算器 442 10.8 案例研究:数独GUI 443 10.9 显示图像 445 10.10 案例研究:扑克牌GUI 446 第11章 基于Tkinter的GUI高级 编程 457 11.1 概述 457 11.2 组合框 458 11.3 菜单 459 11.4 弹出菜单 461 11.5 鼠标事件、键盘事件和事件 绑定 463 11.6 案例研究:查找距离最近的 点对 468 11.7 动画 469 11.8 案例研究:弹跳的小球 472 11.9 滚动条 475 11.10 标准对话框 476 第12章 继承和多态性 486 12.1 概述 486 12.2 超类和子类 487 12.3 重写方法 493 12.4 object类 494 12.5 多态性和动态绑定 495 12.6 isinstance函数 497 12.7 案例研究:可重用的时钟 499 12.8 类关系 503 12.9 案例研究:设计Course类 506 12.10 案例研究:设计一个用于 栈的类 508 12.11 案例研究:FigureCanvas 类 510 第13章 文件和异常处理 529 13.1 概述 530 13.2 文本输入和输出 530 13.3 文件对话框 541 13.4 案例研究:统计一个文件中的 字符数 544 13.5 从网上读取数据 546 13.6 异常处理 547 13.7 抛出异常 551 13.8 使用异常类处理异常 553 13.9 定义自定义异常类 554 13.10 案例研究:网络爬虫 557 13.11 使用pickle执行二进制 输入和输出 559 13.12 案例研究:地址簿 561 第14章 元组、集合和字典 570 14.1 概述 571 14.2 元组 571 14.3 集合 574 14.4 比较集合和列表的性能 580 14.5 案例研究:统计关键字 582 14.6 字典 583 14.7 案例研究:单词出现的次数 588 附录A Python关键字 596 附录B ASCII字符集 597 附录C 数制系统 599 附录D 命令行参数 604 附录E 正则表达式 607 附录F 位运算操作 614 附录G 大O表示法、大Ω表示法 和大Θ表示法 615 附录H 运算符的优先顺序表 617
|
| 內容試閱:
|
前 言 Introduction to Python Programming and Data Structures, Third Edition 欢迎阅读本书。 本书假设读者是一名刚入门的新手程序员,也就是没有任何程序设计的预备知识。那么,什么是程序设计呢?程序设计是指使用程序设计语言创建解决方案(即编写程序)来解决问题。无论使用哪种程序设计语言,解决问题和程序设计的基本原理都是相同的。我们可以使用任何高级程序设计语言(例如Python、Java、C++或者C#)学习程序设计。一旦我们掌握了如何使用一种程序设计语言进行程序设计,就很容易学会其他程序设计语言,因为编写程序的基本技术是一样的。 那么,使用Python学习程序设计具有什么优势呢?Python语言很容易学习,程序设计也很有趣。Python代码简单、短小、可读、直观并且功能强大,因此可以有效地使用Python语言向初学者介绍计算的概念和解决问题的方法。 本书以问题驱动的方式教授解决问题的方法。教学的重点是解决问题的方法,而不是语法知识。书中通过在广泛的背景下使用有趣的例子来激发学生对程序设计的兴趣。虽然本书的中心主题是解决问题的方法,但为了解决问题,也必须适当介绍Python语法和库。为了支持以问题驱动的方式进行程序设计教学,本书提供了各种不同难度的问题,以激发学生的学习激情。为了吸引所有专业的学生,这些问题涵盖了数学、科学、商业、财务管理、游戏、动画和多媒体等诸多应用领域。 在Python中,所有数据都是对象。第4章介绍了对象的概念以及如何使用对象,但在本书的中间部分(即从第9章开始)才介绍如何定义自定义类。本书首先关注基础知识:在编写自定义类之前,首先介绍了关于选择结构、循环结构和函数的基本程序设计概念和技术。 教授程序设计最好的方法是通过示例,而学习程序设计的唯一方法是通过动手实践。本书通过示例阐述基本概念,并且提供了大量不同难度的练习供学生进行实践。目标是借助这些有趣的示例和练习,使本书成为一本适用于在广泛的应用背景下教授问题解决方法和程序设计技术的教科书。 本书适用于两学期的程序设计入门课程教学,也可用于为已经了解其他程序设计语言的学生开设的一学期Python程序设计课程。 新增内容 本书在细节上进行了全面修订,旨在改善清晰度、呈现方式、内容、示例和练习。主要包括: 更新1.2节,纳入云存储和触摸屏的内容。 在3.14节介绍了Python 3.10版本中的match-case语句,以简化多个条件分支的编码。 第4章介绍了F-字符串,以提供一种简明的语法来格式化字符串并输出。 第7章介绍了统计函数,使学生能够为常见的统计任务编写简单的代码。 上一版的14.4节、14.6节、18.4节被拆分为多个小节,以改进内容的呈现。 数据结构部分增加了更多内容并进行了改进。首先介绍如何使用数据结构,然后介绍如何实现数据结构,最后介绍如何创建自定义数据结构。本书涵盖了典型数据结构课程中的所有主题。此外,书中在第16章中介绍字符串匹配,在第22章和第23章中介绍图算法,作为数据结构课程的可选内容材料。 附录G是全新的。该附录给出了“大O”表示法以及“大Ω”表示法和“大Θ”表示法的精确数学定义。 附录H是全新的。该附录列出了Python运算符及其优先级。 提供了许多新的示例和练习,以激发学生对程序设计的兴趣。(这是梁博士每本新书的特点。) 灵活的章节安排 为了提高灵活性,本书在第1~9章中使用了海龟绘图(Turtle Graphics),在其余部分中使用了TkinterGUI编程。图形是教授程序设计的一种非常有价值的教学工具。然而,本书的设计旨在让教师能够灵活地跳过或者稍后覆盖有关图形的内容,而不影响其他内容的阅读和学习。下图展示了本书章节的相关性。 学习目标 每章开头的学习目标列出了学生应该从本章中学到的知识点。这份简明的清单可以帮助学生在完成本章学习后判断自己是否达成了学习目标。 编程演练让学生能够在IDE类型的环境中练习编码。学生有机会填写缺失的代码,按要求运行,并且在提交后立即收到反馈。编程演练指导学生找到正确的答案,帮助学生坚持实践并且保持不断尝试的动力。 代码演示动画模拟程序的执行过程,可以让学生逐行浏览代码列表,根据程序提示输入数据,并且立即显示所输入的数据对程序的影响。 交互式流程图、算法动画以及UML类图用于提高解决问题的能力和逻辑技能,理解操作的流程,并且帮助学生在开始编写代码之前可视化了解程序中所发生的情况。 补充说明 由于未获得Revel版本(互动式数字教材)的授权,因此大量视频和动画内容无法通过纸质版本呈现。我们在书中提供了部分互动内容的访问地址,包括代码演示动画(CodeAnimation)、编程演练(LiveExample)和编程练习(Exercise)等。读者可通过以下二维码获得完整的互动内容链接列表。
|
|