第一部分 编程简介 3
第1章 概述 3
1.1本书的结构 4
1.2从终点出发 4
1.3你不是一个人在战斗 5
1.4自学的优势 5
1.5为什么应该编程 5
1.6坚持不懈 6
1.7本书的格式 6
1.8本书使用的技术 6
1.9术语表 7
1.10挑战练习 7
第2章 起步 9
2.1什么是编程 9
2.2什么是Python 10
2.3安装Python 10
2.4问题解答 11
2.5交互式shell 11
2.6保存程序 12
2.7运行示例程序 12
2.8术语表 13
2.9挑战练习 13
第3章 编程概论 15
3.1示例 15
3.2注释 16
3.3打印 17
3.4代码行 17
3.5关键字 18
3.6间距 18
3.7数据类型 19
3.8常量和变量 21
3.9语法 24
3.10错误与异常 25
3.11算术操作符 26
3.12比较操作符 29
3.13逻辑操作符 31
3.14条件语句 34
3.15 语句 38
3.16术语表 40
3.17挑战练习 42
第4章 函数 43
4.1表达概念 43
4.2函数 44
4.3定义函数 44
4.4内置函数 47
4.5复用函数 49
4.6必选及可选参数 51
4.7作用域 52
4.8异常处理 55
4.9文档字符串 58
4.10有需要才使用变量 58
4.11术语表 59
4.12挑战练习 59
第5章 容器 61
5.1方法 61
5.2列表 62
5.3元组 66
5.4字典 69
5.5容器嵌套容器 72
5.6术语表 76
5.7挑战练习 76
第6章 字符串操作 77
6.1三引号字符串 77
6.2索引 77
6.3字符串是不可变的 79
6.4字符串拼接 79
6.5字符串乘法 80
6.6改变大小写 80
6.7格式化 80
6.8分割 82
6.9连接 82
6.10去除空格 83
6.11替换 84
6.12查找索引 84
6.13 in关键字 85
6.14字符串转义 85
6.15 换行符 86
6.16切片 87
6.17术语表 88
6.18挑战练习 89
第7章 循环 91
7.1 for循环 91
7.2 range函数 95
7.3 while循环 95
7.4 break语句 96
7.5 continue语句 98
7.6嵌套循环 99
7.7术语表 100
7.8挑战练习 101
第8章 模块 103
8.1导入内置模块 103
8.2导入其他模块 105
8.3术语表 107
8.4挑战练习 107
第9章 文件 109
9.1写文件操作 109
9.2自动关闭文件 110
9.3读取文件 111
9.4 CSV文件 112
9.5术语表 114
9.6挑战练习 114
第10章 综合练习 115
10.1 Hangman 116
10.2挑战练习 119
第11章 练习 121
11.1阅读 121
11.2其他资源 121
11.3寻求帮助 121
第二部分 面对对象编程简介 125
第12章 编程范式 125
12.1状态 125
12.2过程式编程 125
12.3函数式编程 127
12.4面向对象编程 128
12.5术语表 133
12.6挑战练习 134
第13章 面向对象编程的四大支柱 135
13.1封装 135
13.2抽象 138
13.3多态 138
13.4继承 140
13.5组合 143
13.6术语表 144
13.7挑战练习 144
第14章 深入面向对象编程 145
14.1类变量与实例变量 145
14.2魔法方法 147
14.3 is 149
14.4术语表 150
14.5挑战练习 150
第15章 综合练习 151
15.1卡牌 151
15.2牌堆 153
15.3玩家 154
15.4游戏 155
15.5战争 157
第三部分 编程工具简介 163
第16章Bash 163
16.1跟随练习 163
16.2找到Bash 164
16.3命令 164
16.4最近命令 165
16.5相对路径与绝对路径 165
16.6导航 166
16.7旗标 168
16.8隐藏文件 169
16.9管道 169
16.10环境变量 169
16.11用户 170
16.12了解更多 171
16.13术语表 171
16.14挑战练习 172
第17章 正则表达式 173
17.1初始配置 173
17.2简单匹配 174
17.3匹配起始位置 176
17.4匹配多个字符 177
17.5匹配数字 178
17.6重复 179
17.7转义 181
17.8正则工具 182
17.9术语表 182
17.10挑战练习 183
第18章 包管理器 185
18.1包 185
18.2 pip 185
18.3虚拟环境 188
18.4术语表 188
18.5挑战练习 188
第19章 版本控制 189
19.1代码仓库 189
19.2入门 190
19.3推送和拉取 191
19.4推送示例 192
19.5拉取示例 195
19.6回退版本 195
19.7 diff 196
19.8下一步 197
19.9术语表 197
19.10挑战练习 198
第20章 融会贯通 199
20.1 HTML 199
20.2爬取Google新闻 200
20.3术语表 204
20.4挑战练习 204
第四部分 计算机科学简介 207
第21章 数据结构 207
21.1数据结构 207
21.2栈 207
21.3使用栈逆转字符串 210
21.4队列 211
21.5购票队列 213
21.6术语表 215
21.7挑战练习 216
第22章 算法 217
22.1 FizzBuzz 217
22.2顺序搜索 218
22.3回文词 219
22.4变位词 220
22.5计算字母频数 220
22.6递归 221
22.7术语表 223
22.8挑战练习 224
第五部分 找到工作 227
第23章 最佳编程实践 227
23.1写代码是最后的手段 227
23.2 DRY 227
23.3正交性 227
23.4每个数据都只应保存在一处 228
23.5函数只做一件事 228
23.6若耗费时间过长,你的做法很可能就是错的 228
23.7第一次就要用最佳的方法完成 228
23.8遵循惯例 229
23.9使用强大的IDE 229
23.10记录日志 230
23.11测试 230
23.12代码审查 230
23.13安全 231
23.14术语表 232
第24章 第一份编程工作 233
24.1选择方向 233
24.2积累初期经验 234
24.3拿到面试机会 234
24.4面试 234
24.5面试技巧 235
第25章 团队协作 237
25.1掌握基础 237
25.2提问前请先搜索 237
25.3修改代码 238
25.4冒名顶替综合征 238
第26章 更多学习资料 239
26.1经典书籍 239
26.2在线课堂 239
26.3骇客新闻 240
第27章 下一步 241
27.1找到导师 241
27.2加深理解 241
27.3其他建议 242