暂无商品咨询信息 [发表商品咨询]
本书旨在采用以基础为先的教学方法,帮助学生在更广泛的情境中学习问题解决思路和程序设计方法,从而创建高效、优雅的代码,适用于Python程序设计和数据结构入门课程。书中首先介绍选择、循环和函数等基本编程概念和技巧,然后才引入自定义类。本书还配有不同难度的问题和练习,涵盖有趣的应用领域,以激发灵感,激励学生学习。第3版新增了数据结构主题,内容、示例和练习均与主流趋势保持同步。
本书中文版分为基础篇和进阶篇,基础篇对应原书的第1~14章,进阶篇对应原书的第15~23章,便于教师按需选择教材。
本书特色
以问题驱动、基础为先的方法进行介绍,侧重于问题解决思路,而非语法。
从基础开始,循序渐进地讲解,先教授基本概念和技巧,再引入自定义类。
涵盖从基础到面向对象程序设计,从简单函数到STL,再到简单数据类型和经典结构的广泛主题。
编程练习按难度分组,为学生提供大量实践和应用技能的机会。
书中有丰富的来自各个领域的例子和问题,为学习概念提供了有趣的背景。
采用灵活的章节顺序,允许教师跳过或稍后处理图形内容。
本书首先介绍Python基础知识,在带领读者编写自定义类之前,先介绍关于选择结构、循环结构和函数的基本编程概念和技术。然后介绍如何使用Python解决问题。不同难度的练习和问题涵盖了多个有趣的应用领域。本书包含大量练习题,指导读者创建高效、优雅的代码,在实践中掌握编程技巧。第3版新增了关于数据结构的内容,并更新了大量示例和练习。
译者序<br />前言<br />作者简介<br />第1章 计算机、程序和Python简介 1<br />1.1 概述 1<br />1.2 什么是计算机 2<br />1.2.1 中央处理器 2<br />1.2.2 二进制位和字节 3<br />1.2.3 内存 3<br />1.2.4 存储设备 4<br />1.2.5 输入设备和输出设备 5<br />1.2.6 通信设备 5<br />1.3 程序设计语言 6<br />1.3.1 机器语言 6<br />1.3.2 汇编语言 6<br />1.3.3 高级语言 7<br />1.4 操作系统 8<br />1.4.1 控制和监测系统活动 8<br />1.4.2 分配和安排系统资源 8<br />1.4.3 调度计划任务 8<br />1.5 Python的发展历史 9<br />1.6 Python入门 9<br />1.6.1 启动Python 10<br />1.6.2 创建Python源代码文件 11<br />1.6.3 使用Python执行数学计算 13<br />1.7 程序设计风格和文档 13<br />1.7.1 适当的注释和注释风格 14<br />1.7.2 适当的间距 14<br />1.8 程序设计错误 14<br />1.8.1 语法错误 14<br />1.8.2 运行时错误 15<br />1.8.3 逻辑错误 15<br />1.9 图形程序设计入门 16<br />1.9.1 绘制图形并为图形添加颜色 16<br />1.9.2 将画笔移动到任何位置 18<br />1.9.3 绘制奥运五环徽标 19<br />关键术语 20<br />本章总结 21<br />编程练习 21<br />第2章 程序设计初步 26<br />2.1 概述 26<br />2.2 编写一个简单的程序 26<br />2.3 从控制台读取输入 28<br />2.4 标识符 30<br />2.5 变量、赋值语句和表达式 31<br />2.6 同时赋值 32<br />2.7 命名常量 32<br />2.8 数值数据类型和运算符 33<br />2.8.1 运算符/、//和** 34<br />2.8.2 运算符% 34<br />2.8.3 科学记数法 36<br />2.9 案例研究:零钱兑换 36<br />2.10 表达式求值以及运算符优先级 38<br />2.11 复合赋值运算符 39<br />2.12 类型转换和数值舍入 39<br />2.13 案例研究:显示当前时间 41<br />2.14 软件开发过程 42<br />2.15 案例研究:计算距离 45<br />关键术语 48<br />本章总结 48<br />编程练习 48<br />第3章 选择结构 59<br />3.1 概述 59<br />3.2 布尔类型、布尔值和布尔表达式 60<br />3.3 生成随机数 61<br />3.4 if语句 62<br />3.5 双分支if-else语句 64<br />3.6 嵌套的if语句和多分支if-elif-else语句 66<br />3.7 选择语句中的常见错误 69<br />3.8 案例研究:计算体重指数 71<br />3.9 案例研究:计算个人所得税 72<br />3.10 逻辑运算符 74<br />3.11 案例研究:判断闰年 77<br />3.12 案例研究:彩票抽奖 77<br />3.13 条件表达式 79<br />3.14 Python 3.10版本中的match-case<br />语句 79<br />3.15 运算符优先级和结合性 81<br />3.16 检测目标的位置 82<br />关键术语 84<br />本章总结 84<br />编程练习 84<br />第4章 数学函数、字符串和对象 101<br />4.1 概述 101<br />4.2 常用的Python函数 102<br />4.3 字符串和字符 107<br />4.3.1 ASCII码和统一码 108<br />4.3.2 函数ord和chr 109<br />4.3.3 特殊字符的转义序列 109<br />4.3.4 不使用换行符进行打印 110<br />4.3.5 str函数 111<br />4.3.6 拼接和重复运算符 111<br />4.3.7 从控制台读取字符串 112<br />4.3.8 in和not in运算符 112<br />4.3.9 比较字符串 113<br />4.3.10 字符串函数 114<br />4.3.11 索引运算符 115<br />4.3.12 切片运算符 116<br />4.4 案例研究:使用字符串改进彩票<br />抽奖程序 116<br />4.5 对象和方法简介 117<br />4.6 字符串方法 118<br />4.6.1 查找和统计子字符串 120<br />4.6.2 转换字符串 121<br />4.6.3 从字符串中去除空白字符 122<br />4.7 案例研究 123<br />4.7.1 问题:猜测生日 123<br />4.7.2 问题:将十六进制数字转换<br />为十进制值 126<br />4.8 格式化数值和字符串 127<br />4.8.1 格式化浮点数 128<br />4.8.2 格式化为科学记数法 129<br />4.8.3 格式化为百分比 129<br />4.8.4 对齐格式 129<br />4.8.5 格式化整数 130<br />4.8.6 格式化字符串 130<br />4.8.7 F-字符串 132<br />4.9 绘制各种不同类型的形状 133<br />4.10 使用颜色和字体进行绘制 135<br />关键术语 137<br />本章总结 138<br />编程练习 138<br />第5章 循环结构 149<br />5.1 概述 149<br />5.2 while循环 150<br />5.3 案例研究:猜数游戏 152<br />5.4 循环设计策略 155<br />5.5 使用用户确认和哨兵值控制循环 157<br />5.6 for循环 159<br />5.7 嵌套循环 160<br />5.8 最小化数值误差 161<br />5.9 案例研究 162<br />5.9.1 问题:寻找最大公约数 162<br />5.9.2 问题:预测未来学费 164<br />5.9.3 问题:将十进制转换为十六<br />进制 165<br />5.10 关键字break和continue 166<br />5.11 案例研究:测试回文 168<br />5.12 案例研究:显示素数 170<br />5.13 案例研究:随机游走 172<br />关键术语 174<br />本章总结 174<br />编程练习 174<br />第6章 函数 189<br />6.1 概述 189<br />6.2 定义函数 190<br />6.3 调用函数 191<br />6.4 返回值的函数和不返回值的函数 194<br />6.5 位置参数和关键字参数 196<br />6.6 按引用值传递参数 197<br />6.7 模块化编码 198<br />6.8 变量的作用域 201<br />6.9 默认参数 203<br />6.10 返回多个值 204<br />6.11 案例研究:随机生成ASCII字符 205<br />6.12 案例研究:十六进制转换为<br />十进制 206<br />6.13 案例研究:函数抽象和逐<br />步求精 208<br />6.13.1 自顶向下的设计方法 209<br />6.13.2 自顶向下和/或自底向上的<br />实现方法 211<br />6.13.3 实现细节 211<br />6.13.4 逐步求精的优越性 214<br />6.14 案例研究:可重用的图形<br />函数 214<br />关键术语 217<br />本章总结 217<br />编程练习 218<br />第7章 列表 235<br />7.1 概述 235<br />7.2 列表基础 236<br />7.2.1 列表是一个序列 236<br />7.2.2 列表的函数 237<br />7.2.3 索引运算符 237<br />7.2.4 列表切片 238<br />7.2.5 运算符+、+=、*和in/<br />not in 239<br />7.2.6 使用for循环遍历列表元素 239<br />7.2.7 比较列表 240<br />7.2.8 列表解析 240<br />7.2.9 列表对象的方法 241<br />7.2.10 将字符串拆分为列表 242<br />7.2.11 输入列表 242<br />7.2.12 列表中数据的偏移 243<br />7.2.13 使用列表简化编码 243<br />7.2.14 Python统计函数 243<br />7.3 案例研究:分析数值 244<br />7.4 案例研究:一副扑克牌 245<br />7.5 复制列表 247<br />7.6 将列表传递给函数 248<br />7.7 从函数中返回列表 250<br />7.8 案例研究:统计每个字母出现<br />的次数 251<br />7.9 列表查找 253<br />7.9.1 线性查找方法 253<br />7.9.2 二分查找方法 254<br />7.10 列表排序 257<br />关键术语 258<br />本章总结 258<br />编程练习 259<br />第8章 多维列表 272<br />8.1 概述 272<br />8.2 处理二维列表 273<br />8.2.1 使用输入值初始化列表 273<br />8.2.2 使用随机值初始化列表 273<br />8.2.3 打印列表 273<br />8.2.4 计算所有元素之和 274<br />8.2.5 按列计算元素之和 274<br />8.2.6 查找元素之和最大的行 274<br />8.2.7 随机混排 274<br />8.2.8 排序 275<br />8.3 将二维列表传递给函数 275<br />8.4 问题:对单项选择题进行评分 276<br />8.5 问题:寻找距离最近的点对 277<br />8.6 问题:数独游戏 280<br />8.7 多维列表 284<br />8.7.1 案例研究:每日温度和湿度 284<br />8.7.2 案例研究:猜测生日 286<br />关键术语 287<br />本章总结 287<br />编程练习 288<br />第9章 对象和类 308<br />9.1?概述 308<br />9.2?定义对象的类 308<br />9.2.1?定义类 309<br />9.2.2?构造对象 310<br />9.2.3?访问对象成员 311<br />9.2.4?self参数 312<br />9.2.5?示例:使用类 313<br />9.2.6?对象与变量以及复制对象 314<br />9.3?UML类设计 314<br />9.4?使用Python库中的类:datetime<br />类 317<br />9.5?不可变对象与可变对象 318<br />9.6?隐藏数据字段 320<br />9.7?类的抽象和封装 321<br />9.8?面向对象的程序设计思维 325<br />9.9?运算符重载和特殊方法 327<br />9.10?案例研究:Rational类 329<br />关键术语 333<br />本章总结 333<br />编程练习 334<br />第10章 基于Tkinter的GUI编程<br />基础 345<br />10.1 概述 345<br />10.2 Tkinter入门 345<br />10.3 处理事件 346<br />10.4 组件类 348<br />10.5 Canvas 353<br />10.6 几何图形管理器 356<br />10.6.1 grid 356<br />10.6.2 pack 357<br />10.6.3 place 358<br />10.7 案例研究:贷款计算器 359<br />10.8 案例研究:数独GUI 360<br />10.9 显示图像 362<br />10.10 案例研究:扑克牌GUI 364<br />关键术语 365<br />本章总结 365<br />编程练习 365<br />第11章 基于Tkinter的GUI高级<br />编程 373<br />11.1 概述 373<br />11.2 组合框 373<br />11.3 菜单 375<br />11.4 弹出菜单 377<br />11.5 鼠标事件、键盘事件和事件<br />绑定 378<br />11.6 案例研究:查找距离最近的<br />点对 382<br />11.7 动画 383<br />11.8 案例研究:弹跳的小球 386<br />11.9 滚动条 389<br />11.10 标准对话框 390<br />关键术语 391<br />本章总结 391<br />编程练习 392<br />第12章 继承和多态性 399<br />12.1 概述 399<br />12.2 超类和子类 399<br />12.3 重写方法 404<br />12.4 object类 405<br />12.5 多态性和动态绑定 406<br />12.6 isins?tance函数 408<br />12.7 案例研究:可重用的时钟 410<br />12.8 类关系 414<br />12.8.1 关联 414<br />12.8.2 聚合和组合 416<br />12.9 案例研究:设计Course类 417<br />12.10 案例研究:设计一个用于<br />栈的类 419<br />12.11 案例研究:FigureCanvas<br />类 421<br />关键术语 424<br />本章总结 424<br />编程练习 424<br />第13章 文件和异常处理 437<br />13.1 概述 437<br />13.2 文本输入和输出 438<br />13.2.1 打开一个文件 438<br />13.2.2 写入数据 439<br />13.2.3 测试一个文件的存在性 441<br />13.2.4 读取数据 441<br />13.2.5 从文件中读取海量数据 444<br />13.2.6 附加数据 446<br />13.2.7 数值数据的写入和读取 447<br />13.3 文件对话框 447<br />13.4 案例研究:统计一个文件中的<br />字符数 451<br />13.5 从网上读取数据 452<br />13.6 异常处理 453<br />13.7 抛出异常 456<br />13.8 使用异常类处理异常 459<br />13.9 定义自定义异常类 460<br />13.10 案例研究:网络爬虫 462<br />13.11 使用pickle执行二进制输入<br />和输出 464<br />13.11.1 转储和加载对象 465<br />13.11.2 检测文件末尾 465<br />13.12 案例研究:地址簿 467<br />关键术语 470<br />本章总结 470<br />编程练习 470<br />第14章 元组、集合和字典 475<br />14.1 概述 475<br />14.2 元组 476<br />14.3 集合 478<br />14.3.1 创建集合 478<br />14.3.2 操作和访问集合 479<br />14.3.3 子集和超集 479<br />14.3.4 相等性测试 480<br />14.3.5 集合操作 480<br />14.4 比较集合和列表的性能 482<br />14.5 案例研究:统计关键字 484<br />14.6 字典 485<br />14.6.1 创建字典 485<br />14.6.2 添加、修改和检索值 486<br />14.6.3 删除字典中的数据项 487<br />14.6.4 遍历字典的数据项 487<br />14.6.5 len、max和min函数 487<br />14.6.6 测试键是否位于字典中 487<br />14.6.7 相等性测试 488<br />14.6.8 字典对象的方法 488<br />14.7 案例研究:单词出现的次数 489<br />关键术语 491<br />本章总结 491<br />编程练习 491<br />附录A Python关键字 496<br />附录B ASCII字符集 497<br />附录C 数制系统 498<br />附录D 命令行参数 503<br />附录E 正则表达式 506<br />附录F 位运算操作 512<br />附录G 大O表示法、大Ω表示法和<br />大Θ表示法 513<br />附录H 运算符的优先顺序表 514
| 基本信息 | |
|---|---|
| 出版社 | 机械工业出版社 |
| ISBN | 9787111792529 |
| 条码 | 9787111792529 |
| 编者 | [美]梁勇(Y. Daniel Liang) 著 |
| 译者 | 江红,余青松,余靖 |
| 出版年月 | 2025-10-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 516 |
| 字数 | 842 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | 一般胶版纸 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]