编辑推荐:
适读人群 :本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员。
“笨办法学”系列,是由有着百万粉丝的编程大师Zed A. Shaw创建的一套非常有效的学习体系,本套装是其开发的针对Python编程的学习教材。本套图书有以下特点:
1.知乎、B站、CSDN等平台众多技术大咖倾情推荐,零基础学Python编程的良好选择;
2.配套同步教学视频,学习效率更高效,手机扫码轻松观看;
3.案例式教学,边学边练,学习更有针对性;
内容简介:
《笨办法学Python 3》是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。本书是基于Python 3.6版本编写的。
本书结构非常简单,除“准备工作”之外,还包括52个习题,其中26个覆盖了输入/输出、变量和函数3个主题,另外26个覆盖了一些比较进阶的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。
本书是《“笨办法”学Python 3》一书的进阶篇,《“笨办法”学Python 3》介绍了用Python 3编程的基础知识,而本书则通过52个精心设计的习题帮助读者超越基础,提升水平。这52个习题大部分都结合实际演示,并配有附加挑战,每个习题都可以帮读者掌握一项关键的实践技能,包括使用文本编辑器管理复杂的项目、利用功能强大的数据结构、应用算法处理数据结构、掌握必要的文本分析和处理技术、使用SQL有效且合逻辑地建模存储数据,以及学习强大的命令行工具等。本书旨在帮助读者从单纯地编写能运行的代码跨越到编写能解决实际问题的高质量Python代码,成为一名高阶的Python程序员。
本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员。
作者简介
泽德 A. 肖(Zed A.Shaw)是《“笨办法”学Python》《“笨办法”学Ruby》《“笨办法”学C语言》等几本备受欢迎的图书的作者,他的书在全世界有数百万读者。他还是诸多开源项目的创建者,拥有近20年的编程和写作经验。他大部分空闲时间致力于绘画和艺术史的研究
译者简介
王巍巍是一名受软件和编程的吸引,中途转行上岗的软件从业人员。代码和翻译是他的两大爱好,此外他还喜欢在网上撰写和翻译一些不着边际的话题和文章。如果读者对书中的内容有疑问,或者发现了书中的错误,再或者只是想随便聊聊,请通过电子邮件与其联系。
笨办法学Python 3:基础篇+进阶篇
目录
《笨办法学Python 3 基础篇》
习题0 准备工作 1
macOS 1
Windows 2
Linux 3
网上搜索 4
给新手的告诫 5
可选文本编辑器 5
习题1 第 一个程序 7
应该看到的结果 8
巩固练习 10
常见问题回答 11
习题2 注释和#号 12
应该看到的结果 12
巩固练习 12
常见问题回答 13
习题3 数字和数学计算 14
应该看到的结果 15
巩固练习 15
常见问题回答 16
习题4 变量和命名 17
应该看到的结果 18
巩固练习 18
常见问题回答 19
习题5 更多的变量和打印 20
应该看到的结果 21
巩固练习 21
常见问题回答 21
习题6 字符串和文本 22
应该看到的结果 23
巩固练习 23
破坏程序 23
常见问题回答 24
习题7 更多打印 25
应该看到的结果 25
巩固练习 26
破坏程序 26
常见问题回答 26
习题8 打印,打印 27
应该看到的结果 27
巩固练习 28
常见问题回答 28
习题9 打印,打印,打印 29
应该看到的结果 29
巩固练习 30
常见问题回答 30
习题10 那是什么 31
应该看到的结果 32
转义序列 32
巩固练习 33
常见问题回答 33
习题11 提问 34
应该看到的结果 34
巩固练习 35
常见问题回答 35
习题12 提示别人 36
应该看到的结果 36
巩固练习 36
常见问题回答 37
习题13 参数、解包和变量 38
等一下!“特性”还有另外一个名字 38
应该看到的结果 39
巩固练习 40
常见问题回答 40
习题14 提示和传递 41
应该看到的结果 41
巩固练习 42
常见问题回答 42
习题15 读取文件 44
应该看到的结果 45
巩固练习 45
常见问题回答 46
习题16 读写文件 47
应该看到的结果 48
巩固练习 49
常见问题回答 49
习题17 更多文件操作 50
应该看到的结果 51
巩固练习 51
常见问题回答 52
习题18 命名、变量、代码和函数 53
应该看到的结果 54
巩固练习 55
常见问题回答 55
习题19 函数和变量 56
应该看到的结果 57
巩固练习 57
常见问题回答 57
习题20 函数和文件 59
应该看到的结果 60
巩固练习 60
常见问题回答 60
习题21 函数可以返回某些东西 62
应该看到的结果 63
巩固练习 63
常见问题回答 64
习题22 到现在为止你学到了什么 65
学到的东西 65
习题23 字符串、字节串和字符编码 66
初始研究 66
开关、约定和编码 68
解剖输出 69
解剖代码 70
深度接触编码 72
破坏程序 72
习题24 更多的练习 74
应该看到的结果 75
巩固练习 75
常见问题回答 76
习题25 更多更多的练习 77
应该看到的结果 78
巩固练习 79
常见问题回答 80
习题26 恭喜你,现在可以考试了! 81
常见问题回答 81
习题27 记住逻辑关系 82
逻辑术语 82
真值表 83
常见问题回答 84
习题28 布尔表达式练习 85
应该看到的结果 86
巩固练习 87
常见问题回答 87
习题29 if语句 88
应该看到的结果 89
巩固练习 89
常见问题回答 89
习题30 else和if 90
应该看到的结果 91
巩固练习 91
常见问题回答 91
习题31 作出决定 92
应该看到的结果 93
巩固练习 93
常见问题回答 94
习题32 循环和列表 95
应该看到的结果 96
巩固练习 97
常见问题回答 97
习题33 while循环 98
应该看到的结果 99
巩固练习 99
常见问题回答 100
习题34 访问列表的元素 101
巩固练习 102
习题35 分支和函数 103
应该看到的结果 105
巩固练习 105
常见问题回答 105
习题36 设计和调试 107
if语句的规则 107
循环的规则 107
调试的小技巧 108
家庭作业 108
习题37 复习各种符号 109
关键字 109
数据类型 110
字符串转义序列 111
老式字符串格式 111
运算符 112
阅读代码 113
巩固练习 114
常见问题回答 114
习题38 列表的操作 115
应该看到的结果 117
列表可以做什么 117
什么时候使用列表 118
巩固练习 118
常见问题回答 119
习题39 字典,可爱的字典 120
字典的例子 121
应该看到的结果 123
字典可以做什么 124
巩固练习 124
常见问题回答 124
习题40 模块、类和对象 125
模块和字典差不多 125
类和模块差不多 126
对象和import差不多 127
获取某样东西里包含的东西 128
第 一个类的例子 128
应该看到的结果 129
巩固练习 129
常见问题回答 130
习题41 学习面向对象术语 131
专有词汇练习 131
措辞练习 131
混合巩固练习 132
阅读测试 132
练习从语言到代码 134
阅读更多代码 135
常见问题回答 135
习题42 对象、类及从属关系 136
代码写成什么样子 137
关于class Name(object) 139
巩固练习 139
常见问题回答 139
习题43 基本的面向对象分析和设计 141
简单游戏引擎的分析 142
自顶向下与自底向上 146
《来自Percal 25号行星的哥顿人》
的代码 146
应该看到的结果 153
巩固练习 153
常见问题回答 154
习题44 继承与组合 155
什么是继承 155
要用super()的原因 160
组合 160
继承和组合的应用场合 162
巩固练习 162
常见问题回答 162
习题45 你来制作一款游戏 164
评价你的游戏 164
函数的风格 165
类的风格 165
代码风格 166
好的注释 166
为你的游戏评分 166
习题46 项目骨架 168
macOS/Linux配置 168
Windows 10配置 170
创建骨架项目目录 171
测试你的配置 173
使用这个骨架 174
小测验 174
常见问题回答 174
习题47 自动化测试 176
编写测试用例 176
测试指南 178
应该看到的结果 178
巩固练习 179
常见问题回答 179
习题48 用户输入进阶 180
我们的游戏词汇 180
测试优先挑战 182
应该测试的东西 183
巩固练习 185
常见问题回答 185
习题49 创建句子 186
match和peek 186
句子的语法 187
关于异常 187
语法分析器代码 187
尝试语法分析器 190
应该测试的东西 191
巩固练习 191
常见问题回答 191
习题50 你的第 一个网站 192
安装flask 192
写一个简单的“Hello World”项目 192
发生了什么 194
修正错误 194
创建基本的模板文件 195
巩固练习 197
常见问题回答 197
习题51 从浏览器中获取输入 198
Web的工作原理 198
表单的工作原理 200
创建HTML表单 201
创建布局模板 203
为表单撰写自动测试代码 205
巩固练习 206
破坏程序 206
习题52 创建Web游戏 207
重构习题43中的游戏 207
创建引擎 212
期末考试 215
常见问题回答 215
接下来的路 217
怎样学习任何一种编程语言 218
老程序员的建议 219
附录 命令行快速入门 221
简介:废话少说,命令行来也 221
练习1 准备工作 222
练习2 路径、文件夹和目录(pwd) 225
练习3 如果你迷失了 227
练习4 创建目录(mkdir) 228
练习5 更改目录(cd) 230
练习6 列出目录中的内容(ls) 234
练习7 删除目录(rmdir) 238
练习8 在多个目录中切换(pushd和popd) 241
练习9 创建空文件(touch/New-Item) 243
练习10 复制文件(cp) 244
练习11 移动文件(mv) 248
练习12 查看文件内容(less/more) 250
练习13 流文件内容显示(cat) 251
练习14 删除文件(rm) 252
练习15 退出终端(exit) 254
命令行接下来的路 255
《笨办法学Python 3 进阶篇》
第一部分 准备知识 1
如果不喜欢作者的个人流程怎么办 2
如果发现自己太糟糕怎么办 2
习题0 准备工作 3
程序员用的编辑器 3
Python 3.6 3
工作终端 4
pip和virtualenv的配置 4
实验笔记 4
GitHub账号 5
git 5
可选:录屏软件 5
进一步研究 5
习题1 论流程 7
习题挑战 8
巩固练习 9
进一步研究 9
习题2 论创新 11
习题挑战 11
巩固练习 12
习题3 论质量 13
习题挑战 14
巩固学习 14
第二部分 快速实现 15
如何练习创新 16
为新手准备的流程 17
新手的写代码流程 17
习题4 处理命令行参数 19
习题挑战 19
答案 20
巩固练习 20
习题5 cat 21
习题挑战 21
答案 22
巩固练习 22
进一步研究 23
习题6 find 25
习题挑战 26
巩固练习 26
进一步研究 27
习题7 grep 29
习题挑战 29
巩固练习 30
进一步研究 30
习题8 cut 31
习题挑战 32
巩固练习 32
进一步研究 32
习题9 sed 33
习题挑战 33
巩固练习 34
进一步研究 34
习题10 sort 35
习题挑战 35
巩固练习 36
进一步研究 36
习题11 uniq 37
习题挑战 37
巩固学习 38
进一步研究 38
习题12 复习 39
习题挑战 39
巩固练习 40
进一步研究 40
第三部分 数据结构 43
通过数据结构学习质量 44
如何学习数据结构 44
习题13 单链表 47
描述 47
控制器 48
测试 50
审计概述 52
习题挑战 53
审计 53
巩固练习 54
习题14 双链表 55
介绍不变条件 56
习题挑战 57
巩固练习 58
习题15 栈和队列 59
习题挑战 60
破坏代码 61
进一步研究 61
习题16 冒泡排序、快速排序和归并排序 63
习题挑战 63
冒泡排序 65
归并排序 66
归并排序的作弊模式 67
快速排序 69
巩固练习 69
习题17 字典 71
习题挑战 71
创建“代码的原版副本” 71
复制代码 72
注解代码 75
总结数据结构 76
记住总结 76
凭借记忆实现 77
重复 78
巩固练习 78
破坏代码 78
习题18 测量性能 79
工具 79
timeit 79
cProfile和profile 80
分析性能 82
习题挑战 83
巩固练习 83
破坏代码 83
进一步研究 84
习题19 提高性能 85
习题挑战 86
进一步研究 87
习题20 二叉查找树 89
二叉查找树必备知识 89
删除 90
习题挑战 91
巩固练习 91
习题21 二分搜索 93
习题挑战 93
巩固练习 94
进一步研究 94
习题22 后缀数组 95
习题挑战 96
巩固练习 96
进一步研究 97
习题23 三叉查找树 99
习题挑战 99
巩固练习 101
习题24 快速URL搜索 103
习题挑战 103
巩固练习 104
进一步研究 104
第四部分 中阶项目 105
跟踪代码缺陷 105
习题25 xargs 107
习题挑战 107
巩固练习 107
习题26 hexdump 109
习题挑战 110
巩固练习 111
进一步研究 111
习题27 tr 113
习题挑战 113
45分钟工作时间段的利弊 114
巩固练习 114
习题28 sh 115
习题挑战 115
巩固练习 116
进一步研究 116
习题29 diff和patch 117
习题挑战 117
巩固练习 118
进一步研究 118
第五部分 解析文本 119
介绍代码覆盖率 119
习题30 有限状态机 121
习题挑战 122
巩固练习 124
进一步研究 124
习题31 正则表达式 125
习题挑战 126
巩固练习 127
进一步研究 127
习题32 扫描器 129
运行Python扫描器 130
习题挑战 132
巩固练习 132
进一步研究 133
习题33 解析器 135
递归下降解析 136
BNF文法 137
解析器快速演示 139
习题挑战 141
巩固练习 141
进一步研究 142
习题34 分析器 143
访问者模式 143
短小的Puny Python分析器 144
解析器和分析器的对比 147
习题挑战 147
巩固练习 148
进一步研究 148
习题35 解释器 149
解释器和编译器的对比 149
Python两者皆是 150
如何写解释器 150
习题挑战 151
巩固练习 151
进一步研究 151
习题36 简单计算器 153
习题挑战 153
巩固练习 154
进一步研究 154
习题37 小小BASIC 155
习题挑战 155
巩固练习 156
第六部分 SQL和对象关系映射 157
理解SQL就是理解表 157
你将学到什么 158
习题38 SQL简介 159
什么是SQL 159
准备工作 160
学习SQL术语 161
SQL文法 162
进一步研究 162
习题39 SQL的创建操作 163
创建表 163
创建多表数据库 164
插入数据 165
插入参考数据 165
习题挑战 165
进一步研究 166
习题40 SQL的读取操作 167
跨表选择行 167
习题挑战 168
进一步研究 169
习题41 SQL的更新操作 171
更新复杂数据 171
替换数据 172
习题挑战 173
进一步研究 173
习题42 SQL的删除操作 175
使用别的表进行删除 175
习题挑战 176
进一步研究 177
习题43 SQL管理 179
删除和修改表 179
迁移和数据演化 180
习题挑战 181
进一步研究 182
习题44 使用Python的数据库API 183
学习API 183
习题挑战 184
进一步研究 184
习题45 创建ORM 185
习题挑战 185
进一步研究 186
第七部分 终极项目 187
你的流程是什么 187
习题46 博客 189
习题挑战 189
巩固练习 190
习题47 bc 191
习题挑战 191
巩固练习 192
习题48 ed 193
习题挑战 193
巩固练习 194
习题49 sed 195
习题挑战 196
巩固练习 196
习题50 vi 197
习题挑战 197
巩固练习 198
习题51 lessweb 199
习题挑战 199
破坏代码 199
巩固练习 200
习题52 moreweb 201
习题挑战 201
破坏代码 202
进一步研究 202
笨办法学Python 3:基础篇+进阶篇