看漫画学Python:有趣、有料、好玩、好用(全彩)(第3版)
  • 推荐0
  • 收藏0
  • 浏览8

看漫画学Python:有趣、有料、好玩、好用(全彩)(第3版)

  • 书  号:9787121512988
  • 出版日期:2025-09-01
  • 页  数:
  • 开  本:
  • 出版状态:上市销售
  • 维护人:博文小编
Python是一门既简单易学又功能强大的编程语言,被广泛应用于数据分析、大数据处理、网络爬虫、自动化运维、科学计算和人工智能等领域。Python的重要性日益凸显,已被纳入国家计算机等级考试科目,许多中小学也开设了Python编程课程。本书秉承有趣、有料、好玩、好用的理念,通过3个漫画人物的轻松对话、生动形象和夸张动作,将复杂的Python 技术问题简单化解。
《看漫画学Python:有趣、有料、好玩、好用(全彩)(第3版)》共计17章。第1章讲解Python的历史和特点,并进行开发环境搭建;第2~5章讲解Python的基础语法,包括数据类型、运算符和程序流程控制等;第6~7章讲解容器类型的数据和字符串操作;第8~11章讲解函数、类与对象、异常处理和常用的内置模块;第12~16章讲解Python实用库的应用,包括文件读写、图形界面设计、网络通信、数据库访问和多线程等,其中使用了Python自带的GUI开发工具包Tkinter进行GUI开发,能有效降低学习门槛,提升实践体验;第17章讲解算法入门知识,包括排序算法、查找算法和递归等,帮助读者培养逻辑思维能力。本书基本在每一章中都安排了“动动手”“课后练习”和“编程挑战”环节,读者可在这些环节找到应用实例和同步练习题。
无论你是小学高年级学生、准备参加计算机竞赛的中学生、计算机相关专业的大学生,还是从事软件开发的职场人士,如果想入门Python,那么本书都适合你阅读和学习。
全网热销超10万册的Python入门神书,第3版重磅升级!漫画有趣、对话有料、编程好玩好用,17大章,300多页趣味干货,配套资源丰富,众咖力赞!
——关东升——
一个在IT领域摸爬滚打30多年的老程序员、软件架构师、高级培训讲师、IT作家。熟悉AIGC、Java、Kotlin、Python、iOS、Android、游戏开发、数据库开发与设计、软件架构设计等多种IT技术。参与设计和开发北京市公交一卡通百亿级大型项目,开发国家农产品追溯系统、金融系统、 微博等移动客户端项目。曾为中国移动、中国联通、南方航空、中国石油、工商银行、平安银行和天津港务局等企事业单位授课。
著有《看漫画学Python》《看漫画学Python 2》《趣玩Python》等50多本计算机图书。

——赵大羽——
用户体验设计师、UI及交互设计专家、企业内训讲师及咨询顾问。毕业于清华大学美术学院,曾为摩托罗拉、上海通用别克、宝洁、西门子等企业提供设计工作;曾为华为、联想、携程、咪咕传媒、爱普生等企业提供用户体验咨询服务及设计培训;著有图书《品味移动设计》《交互设计的艺术》。
——本书写作初衷——
我和赵大羽老师是多年的朋友和同事,曾合作开发多个项目:他有设计功底,负责让项目美观、易用;我有技术功底,负责项目的技术实现。我们一直希望结合彼此的优势,共同创作一本轻松、有趣又实用的技术书。考虑到Python简洁、优雅且适合入门,我们决定先出版一本Python入门书,用漫画的形式呈现Python编程知识,让学习Python像看漫画一样轻松、愉悦。
经过近一年的用心创作,我们终于在2020年3月将本书第1版的书稿提交给电子工业出版社,该书于2020年6月正式出版,累计印刷74000册。其良好的销量和市场口碑,印证了市场和读者对我们写作初衷的认可。

——本书版本演进——
自本书第1版出版以来,我们收到了读者的积极反馈,也采纳了其宝贵建议,对本书第1版进行了内容优化和资源补充,并于2023年2月推出了本书第2版。你正在阅读的这本第3版在前两版的基础上进行了全面升级,不仅图书开本有所变化,内容也有大量调整,比如:重写了第13章,将讲解重点从wxPython改为Tkinter;新增了第17章“算法入门”,讲解了排序算法、查找算法、递归等基础算法知识;将原来每章末尾的“练一练”改为“课后练习”,并新增了“编程挑战”这一实践环节;全书代码风格和术语表达更加统一,内容结构更加清晰。

——本书读者对象——
无论你是小学高年级学生、准备参加计算机竞赛的中学生、计算机相关专业的大学生,还是从事软件开发的职场人士,如果想入门Python,那么本书都适合你阅读和学习。

——本书配套资源——
你既可在本书附录A中找到“课后练习”环节的参考答案,也可通过本书封底的“读者服务”获取以下资源。
(1)本书示例代码和“编程挑战”环节的参考实现代码。这些内容均以.py文件形式提供,方便你查阅和练习。
(2)本书配套素材、视频、习题、模板、教程和课件资源。
(3)本书读者群。你可加入其中,与本书作者和更多读者互动。
——致谢——
衷心感谢电子工业出版社博文视点的张国霞编辑,她在本书创作过程中给予我们细致的指导和严格的鞭策。感谢赵大羽老师手绘全书漫画,并参与了图解创作;感谢赵静仪为书中的漫画创作提供灵感和创意;感谢智捷团队的赵志荣、关童心参与本书部分章节的编写工作;感谢电子工业出版社所有工作人员的辛勤付出。特别感谢家人对我们的理解和支持,使我们能够专注编写本书。
由于时间有限,书中难免存在不足,敬请读者谅解和提出宝贵意见,让我们共同进步!
关东升
2025年8月于齐齐哈尔

目录

第1章 油箱加满!准备出发! / 1
1.1 Python的历史 / 2
1.2 Python的特点 / 3
1.3 安装Python / 4
1.4 动动手——编写和运行Hello World程序 / 5
1.4.1 交互方式 / 6
1.4.2 文件方式 / 7
1.5 课后练习 / 11
1.6 编程挑战 / 11

第2章 编程基础那点事儿 / 12
2.1 标识符 / 13
2.2 关键字 / 14
2.3 变量 / 14
2.4 语句 / 15
2.5 注释 / 16
2.6 模块 / 16
2.7 动动手——实现两个模块间的代码元素访问 / 18
2.8 课后练习 / 19
2.9 编程挑战 / 20

第3章 数字类型的数据 / 21
3.1 Python中的数据类型 / 22
3.2 整数类型 / 22
3.3 浮点类型 / 23
3.4 复数类型 / 24
3.5 布尔类型 / 24
3.6 数字类型的相互转换 / 25
3.6.1 隐式类型的转换 / 26
3.6.2 显式类型的转换 / 27
3.7 课后练习 / 28
3.8 编程挑战 / 29

第4章 运算符 / 30
4.1 算术运算符 / 31
4.2 比较运算符 / 32
4.3 逻辑运算符 / 34
4.4 位运算符 / 35
4.5 赋值运算符 / 37
4.6 运算符的优先级 / 38
4.7 课后练习 / 41
4.8 编程挑战 / 41

第5章 程序流程控制 / 43
5.1 分支语句 / 44
5.1.1 if结构 / 44
5.1.2 if-else结构 / 45
5.1.3 if-elif-else结构 / 47
5.2 循环语句 / 48
5.2.1 while语句 / 48
5.2.2 for语句 / 51
5.3 跳转语句 / 54
5.3.1 break语句 / 54
5.3.2 continue语句 / 55
5.4 动动手——计算水仙花数 / 56
5.5 课后练习 / 58
5.6 编程挑战 / 58

第6章 容器类型的数据 / 60
6.1 序列 / 61
6.1.1 序列的索引操作 / 61
6.1.2 加与乘操作 / 62
6.1.3 切片操作 / 63
6.1.4 成员测试 / 65
6.2 列表 / 65
6.2.1 创建列表 / 65
6.2.2 追加元素 / 66
6.2.3 插入元素 / 67
6.2.4 替换元素 / 68
6.2.5 删除元素 / 68
6.3 元组 / 69
6.3.1 创建元组 / 69
6.3.2 元组拆包 / 70
6.4 集合 / 72
6.4.1 创建集合 / 72
6.4.2 修改集合 / 73
6.5 字典 / 74
6.5.1 创建字典 / 74
6.5.2 修改字典 / 76
6.5.3 访问字典视图 / 77
6.6 动动手——遍历字典 / 78
6.7 课后练习 / 80
6.8 编程挑战 / 80

第7章 字符串 / 82
7.1 字符串的表示方式 / 83
7.1.1 普通字符串 / 83
7.1.2 原始字符串 / 85
7.1.3 长字符串 / 86
7.2 字符串与数字的相互转换 / 86
7.2.1 将字符串转换为数字 / 87
7.2.2 将数字转换为字符串 / 88
7.3 格式化字符串 / 88
7.3.1 使用占位符 / 89
7.3.2 格式化控制符 / 90
7.3.3 使用f-string格式化字符串 / 91
7.4 操作字符串 / 92
7.4.1 字符串查找 / 92
7.4.2 字符串替换 / 93
7.4.3 字符串分割 / 94
7.5 动动手——统计英文文章中单词出现的频率 / 95
7.6 课后练习 / 97
7.7 编程挑战 / 97

第8章 函数 / 99
8.1 定义函数 / 100
8.2 调用函数 / 101
8.2.1 使用位置参数调用函数 / 101
8.2.2 使用关键字参数调用函数 / 102
8.3 参数的默认值 / 103
8.4 可变参数 / 104
8.4.1 基于元组的可变参数(*可变参数) / 104
8.4.2 基于字典的可变参数(**可变参数) / 105
8.5 函数中变量的作用域 / 106
8.6 函数类型 / 108
8.6.1 理解函数类型 / 108
8.6.2 过滤函数filter() / 110
8.6.3 映射函数map() / 111
8.7 lambda()函数 / 112
8.8 动动手——使用更多的lambda()函数 / 114
8.9 课后练习 / 116
8.10 编程挑战 / 117

第9章 类与对象 / 119
9.1 面向对象 / 120
9.2 定义类 / 120
9.3 创建对象 / 121
9.4 类的成员 / 122
9.4.1 实例变量 / 123
9.4.2 构造方法 / 124
9.4.3 实例方法 / 125
9.4.4 类变量 / 126
9.4.5 类方法 / 127
9.5 封装性 / 128
9.5.1 私有变量 / 129
9.5.2 私有方法 / 130
9.5.3 使用属性 / 131
9.6 继承性 / 134
9.6.1 Python中的继承 / 134
9.6.2 多继承 / 136
9.6.3 重写方法 / 138
9.7 多态性 / 140
9.7.1 继承与多态 / 140
9.7.2 鸭子类型测试与多态 / 141
9.8 课后练习 / 144
9.9 编程挑战 / 144

第10章 异常处理 / 146
10.1 第一个异常——除零异常 / 147
10.2 捕获异常 / 148
10.2.1 try-except语句 / 149
10.2.2 多个except代码块 / 151
10.2.3 多重异常捕获 / 152
10.2.4 try-except语句嵌套 / 153
10.3 使用finally代码块释放资源 / 154
10.4 自定义异常类 / 156
10.5 动动手——手动引发异常 / 157
10.6 课后练习 / 159
10.7 编程挑战 / 159

第11章 常用的内置模块 / 160
11.1 数学计算模块——math模块 / 161
11.2 日期时间模块——datetime模块 / 162
11.2.1 datetime类 / 163
11.2.2 date类 / 164
11.2.3 time类 / 165
11.2.4 计算时间跨度类——timedelta类 / 166
11.2.5 将日期时间对象与字符串相互转换 / 167
11.3 正则表达式模块——re模块 / 168
11.3.1 字符串匹配 / 169
11.3.2 字符串查找 / 170
11.3.3 字符串替换 / 171
11.3.4 字符串分割 / 172
11.4 点拨点拨——如何使用官方文档查找模块帮助信息 / 173
11.5 课后练习 / 176
11.6 编程挑战 / 177

第12章 文件读写 / 178
12.1 打开文件 / 179
12.2 关闭文件 / 182
12.2.1 在finally代码块中关闭文件 / 182
12.2.2 在with as代码块中关闭文件 / 184
12.3 读写文本文件 / 185
12.4 动动手——复制文本文件 / 185
12.5 读写二进制文件 / 187
12.6 动动手——复制二进制文件 / 187
12.7 课后练习 / 189
12.8 编程挑战 / 189

第13章 基于Tkinter的图形界面设计 / 191
13.1 图形界面开发工具包概述 / 192
13.2 第一个Tkinter程序 / 193
13.2.1 在窗口中添加控件 / 194
13.2.2 将控件绑定事件处理函数 / 195
13.3 布局管理 / 197
13.3.1 pack / 198
13.3.2 grid / 200
13.3.3 place / 201
13.4 常用控件 / 203
13.4.1 文本输入框 / 203
13.4.2 文本区 / 204
13.4.3 复选框 / 205
13.4.4 单选按钮 / 207
13.4.5 列表 / 209
13.4.6 下拉列表 / 211
13.5 课后练习 / 213
13.6 编程挑战 / 213

第14章 网络通信 / 215
14.1 基本的网络知识 / 216
14.1.1 TCP/IP / 216
14.1.2 IP地址 / 216
14.1.3 端口 / 217
14.1.4 HTTP/HTTPS / 217
14.2 搭建自己的Web服务器 / 218
14.3 urllib.request模块 / 223
14.3.1 发送GET请求 / 223
14.3.2 发送POST请求 / 224
14.4 JSON数据 / 225
14.4.1 JSON文档的结构 / 226
14.4.2 JSON数据的解码 / 226
14.5 动动手——下载图片 / 228
14.6 动动手——返回所有备忘录信息 / 229
14.7 课后练习 / 232
14.8 编程挑战 / 232

第15章 数据库访问 / 233
15.1 SQLite / 234
15.1.1 SQLite中的数据类型 / 234
15.1.2 Python中数据类型与SQLite中数据类型的映射 / 234
15.1.3 使用GUI管理工具管理SQLite / 235
15.2 数据库编程的基本操作过程 / 238
15.3 sqlite3模块 / 239
15.3.1 数据库连接对象Connection / 239
15.3.2 游标对象Cursor / 240
15.4 动动手——数据库的CRUD操作示例 / 240
15.4.1 示例中的表 / 241
15.4.2 无条件查询语句 / 242
15.4.3 有条件查询语句 / 243
15.4.4 插入数据 / 244
15.4.5 更新数据 / 246
15.4.6 删除数据 / 248
15.5 点拨点拨——防止SQL注入攻击 / 250
15.6 课后练习 / 252
15.7 编程挑战 / 252

第16章 多线程 / 254
16.1 线程相关的知识 / 255
16.1.1 进程 / 255
16.1.2 线程 / 255
16.1.3 主线程 / 255
16.2 线程模块——threading模块 / 256
16.3 创建子线程 / 257
16.3.1 通过自定义函数实现线程体 / 257
16.3.2 通过自定义线程类实现线程体 / 259
16.4 线程管理 / 260
16.4.1 等待线程执行结束 / 260
16.4.2 线程停止执行 / 262
16.5 动动手——下载图片 / 264
16.6 课后练习 / 267
16.7 编程挑战 / 267

第17章 算法入门 / 268
17.1 算法的概念 / 269
17.1.1 算法的关键特征 / 270
17.1.2 算法的关键指标 / 270
17.2 排序算法 / 272
17.2.1 冒泡排序 / 272
17.2.2 选择排序 / 276
17.2.3 插入排序 / 281
17.3 查找算法 / 285
17.3.1 顺序查找 / 285
17.3.2 二分查找 / 288
17.4 递归:让函数自己调用自己 / 291
17.4.1 动动手——写一个计算阶乘的程序 / 291
17.4.2 动动手——基于递归实现二分查找 / 293
17.5 课后练习 / 295
17.6 编程挑战 / 295

附录A “课后练习”参考答案 / 296

读者评论