目录
习题0 蓄势待发 1
通用指南 1
快速开始 1
完整指南 2
测试安装 2
学习命令行 3
下一步 3
习题1 写好第一个程序 4
运行结果 5
温故知新 6
常见问题 6
蓝色加号 7
习题2 注释与#字符 8
运行结果 8
温故知新 8
常见问题 9
习题3 数字与数学 10
运行结果 11
温故知新 11
常见问题 11
习题4 变量与命名 13
运行结果 14
温故知新 14
常见问题 14
习题5 更多的变量与打印 16
运行结果 17
温故知新 17
常见问题 17
习题6 字符串与文本 18
运行结果 19
温故知新 19
不破不立 19
常见问题 20
习题7 组合字符串 21
运行结果 21
温故知新 22
不破不立 22
常见问题 22
习题8 手动格式化字符串 23
运行结果 23
温故知新 24
常见问题 24
习题9 多行字符串 25
运行结果 25
温故知新 26
常见问题 26
习题10 字符串中的转义字符 27
运行结果 28
转义序列 28
温故知新 29
常见问题 29
习题11 向人提问 30
运行结果 30
温故知新 31
常见问题 31
习题12 更简单的提示方式 32
运行结果 32
温故知新 32
常见问题 33
习题13 参数、解包、变量 34
如果你迷路了 35
代码描述 35
等一下!“特性”还有另外一个名字 36
运行结果 36
温故知新 37
常见问题 37
习题14 提示和传递 39
运行结果 40
温故知新 40
常见问题 40
习题15 读取文件 42
运行结果 43
温故知新 43
常见问题 44
习题16 读写文件 45
运行结果 46
温故知新 47
常见问题 47
习题17 更多文件操作 48
运行结果 49
温故知新 49
常见问题 49
习题18 命名、变量、代码、函数 51
练习代码 52
运行结果 54
温故知新 54
常见问题 55
习题19 函数和变量 56
运行结果 57
温故知新 58
常见问题 58
习题20 函数和文件 59
运行结果 60
温故知新 60
常见问题 61
习题21 函数可以返回某些内容 62
运行结果 63
温故知新 63
常见问题 64
习题22 字符串、字节和字符编码 65
初始研究 65
开关、约定和编码 66
解析输出 68
解析代码 69
深度学习编码 72
不破不立 72
习题23 列表入门 73
访问列表中的元素 73
列表练习 74
代码操作 74
挑战 75
水果挑战 75
汽车挑战 75
语言挑战 75
最终挑战 76
习题24 字典入门 77
键/值结构 77
列表与数据对象的结合 78
代码 79
运行结果 80
挑战 80
水果挑战 80
汽车挑战 80
语言挑战 81
最终挑战 81
习题25 字典和函数 82
步骤1:函数名称是变量 82
步骤2:带变量的字典 82
步骤3:带函数的字典 83
步骤4:解读最后一行 83
温故知新 84
习题26 字典和模块 85
步骤1:import的回顾 85
步骤2:找到__dict__ 85
步骤3:更改__dict__ 86
温故知新:如何查找“Dunders” 87
习题27 代码游戏的五条简单规则 88
规则1:一切都是指令序列 88
如何获取这些指令 89
这些字节码存储在哪里 90
规则2:跳转使序列非线性 90
为什么是向后的 91
跳转可以是向前的吗 91
规则3:测试控制跳转 91
你说的“弹出”是什么意思 93
像COMPARE_OP这样的测试
不也用在循环中吗 93
规则4:存储控制测试 93
规则5:输入/输出控制存储 94
总结复习 95
字节码列表 95
dis() 是副本任务 96
习题28 理解逻辑关系 97
逻辑术语 97
真值表 98
常见问题 100
习题29 布尔表达式练习 101
运行结果 102
温故知新 102
常见问题 103
习题30 if是什么 104
运行结果 104
使用 dis() 105
温故知新 105
常见问题 105
习题31 else和if 106
运行结果 107
使用 dis() 107
温故知新 108
常见问题 108
习题32 做出决策 109
运行结果 110
使用 dis() 110
温故知新 111
常见问题 111
习题33 循环和列表 112
运行结果 113
使用 dis() 114
温故知新 115
常见问题 115
习题34 while循环 116
运行结果 117
使用 dis() 117
温故知新 118
常见问题 118
习题35 分支和函数 119
运行结果 121
温故知新 121
常见问题 121
习题36 设计和调试 123
从想法到可工作的代码 123
这个流程够专业吗 125
关于“X/Y”非问题 125
if语句的规则 126
循环的规则 127
调试的小技巧 127
家庭作业 127
习题37 符号复习 129
关键字 129
数据类型 130
字符串转义序列 131
传统字符串格式 131
运算符 132
阅读代码 133
温故知新 134
常见问题 134
习题38 超越Windows的Jupyter 135
为什么要学习 PowerShell 136
PowerShell是什么 136
PowerShell对比Cmder 138
启动Jupyter 138
获取帮助 139
如何使用start命令 139
从图形界面到PowerShell 139
你的工作目录在哪里 140
这里有什么? 140
文件、目录和路径 141
切换目录 142
相对路径 142
创建和销毁 143
标志和参数 143
复制和移动 144
环境变量 144
运行代码 144
常用快捷键 145
有用的开发命令 145
远不止于此 145
习题39 超越macOS/Linux的
Jupyter 146
macOS的问题 147
为什么学习Bash或ZSH 147
Bash是什么? 147
启动Jupyter 149
获取帮助 149
如何使用start命令 149
从图形界面到Bash 150
你的工作目录在哪里 150
这里有什么? 151
文件、目录和路径 151
切换目录 152
相对路径 152
创建和销毁 153
隐藏文件 153
标志和参数 154
复制和移动 154
环境变量 155
运行代码 155
常用快捷键 155
有用的开发命令 156
远不止于此 157
习题40 高级开发者工具 158
管理Conda环境 158
添加conda-forge 158
使用pip 159
使用 .condarc 文件 160
通用编辑技巧 160
更进一步 161
习题41 项目骨架 162
激活环境 162
使用cookiecutter 162
构建项目 163
安装项目 163
测试安装 164
移除test-project 164
常见错误 165
温故知新 165
习题42 列表操作 166
运行结果 167
列表作用 168
何时使用列表 169
温故知新 169
常见问题 170
习题43 字典操作 171
字典示例 172
运行结果 174
字典的作用 175
温故知新 175
常见问题 176
习题44 从字典到对象 177
步骤一:将字典传递给函数 177
运行结果 178
步骤二:将talk添加到字典中 178
步骤三:闭包 179
运行结果 180
步骤四:角色构造函数 181
温故知新 182
习题45 基础面向对象编程 183
创建Person对象 183
使用 dir() 与 __dict__ 184
关于点号操作符(.) 185
术语 186
关于self 187
温故知新 188
常见问题 188
习题46 继承与高级面向对象编程 189
如何写成代码 190
关于class Name(object) 192
温故知新 192
常见问题 193
习题47 基础的面向对象分析和设计 194
简单游戏引擎的分析 195
把问题写下来或者画出来 195
提取和研究关键概念 195
给各种概念创建类层次结构和对象图 196
编写类和运行类的测试代码 197
重复和优化 199
自顶向下与自底向上 199
“来自Percal 25号行星的哥顿人”
的代码 200
运行结果 207
温故知新 207
常见问题 208
习题48 继承与组合 209
继承是什么? 209
隐式继承 210
显式覆盖 211
在运行前或运行后替换 211
将3种方式组合在一起使用 212
使用 super() 的原因 214
super() 和 __init__ 搭配使用 214
组合 215
继承和组合的应用场景 216
温故知新 217
常见问题 217
习题49 开发你的专属游戏 218
评估你的游戏 218
函数风格指南 219
类风格指南 219
代码风格指南 220
好的注释 220
评估你的代码 221
习题50 自动化测试 222
测试的目的是什么 222
如何高效测试 222
安装pytest 223
简单的pytest案例 224
运行pytest 225
异常和try/except 225
获取覆盖率报告 226
温故知新 227
常见问题 227
习题51 数据清洗 229
为什么要进行数据清洗 230
问题描述 230
安装 231
如何编写代码 231
流程示例 232
解决方案策略 234
强大的ETL工具 235
温故知新 236
习题52 网络爬虫 237
引入with关键字 237
问题描述 238
安装 238
线索 239
强大的抓取工具 239
温故知新 240
习题53 从API获取数据 241
介绍JSON 241
问题描述 242
安装 243
线索 243
强大的API工具 244
温故知新 244
习题54 使用pandas进行数据转换 245
介绍Pandoc 245
问题描述 245
安装 246
线索 246
温故知新 247
习题55 如何阅读文档(以pandas
为例) 248
为什么编程文档都很糟糕 248
如何主动阅读程序员文档 249
第1步:找到文档 249
pandas举例 249
第2步:确定策略 250
pandas举例 250
第3步:代码第一,文档第二 251
pandas举例 251
第4步:破坏或修改代码 252
第5步:记笔记 252
第6步:随心所欲 252
pandas举例 252
第7步:总结与表达 252
pandas举例 253
第8步:什么是整体感 253
pandas举例 254
阅读我的pandas课程 254
习题56 只使用pandas 255
创建项目 255
问题描述 255
安装 255
温故知新 256
习题57 快速入门SQL 257
SQL是什么 257
安装 258
修复和加载 259
备份数据库 259
创建、读取、更新、删除 260
SELECT 260
日期和时间 261
INSERT 262
UPDATE 263
DELETE和事务 263
数学、聚合和GROUP BY 265
Python访问 266
习题58 SQL规范化 267
什么是规范化 267
第一范式(1NF) 268
实现第一范式(1NF) 269
在SQL中创建表 270
第二范式(2NF) 270
实现2NF 271
使用Python 273
查询2NF数据 273
使用JOIN进行查询 274
温故知新 275
习题59 SQL查询关系 277
一对多(1∶M) 277
Python中的一对多 277
一对多的问题 278
多对多(M∶M) 278
多对多的问题 279
一对一(1∶1) 279
属性关系 280
查询多对多表 280
最后的温故知新 281
习题60 来自一位资深程序员的
建议 282