+ [笨办法学 Python · 续 中文版](README.md) + [引言](intro.md) + [第一部分:预备知识](part1.md) + [练习 0:起步](ex0.md) + [练习 1:流程](ex1.md) + [练习 2:创造力](ex2.md) + [练习 3:质量](ex3.md) + [第二部分:简单的黑魔法](part2.md) + [练习 4:处理命令行参数](ex4.md) + [练习 5:`cat`](ex5.md) + [练习 6:`find`](ex6.md) + [练习 7:`grep`](ex7.md) + [练习 8:`cut`](ex8.md) + [练习 9:`sed`](ex9.md) + [练习 10:`sort`](ex10.md) + [练习 11:`uniq`](ex11.md) + [练习 12:复习](ex12.md) + [第三部分:数据结构](part3.md) + [练习 13:单链表](ex13.md) + [练习 14:双链表](ex14.md) + [练习 15:栈和队列](ex15.md) + [练习 16:冒泡、快速和归并排序](ex16.md) + [练习 17:字典](ex17.md) + [练习 18:性能测量](ex18.md) + [练习 19:改善性能](ex19.md) + [练习 20:二叉搜索树](ex20.md) + [练习 21:二分搜索](ex21.md) + [练习 22:后缀数组](ex22.md) + [练习 23:三叉搜索树](ex23.md) + [练习 24:URL 快速路由](ex24.md) + [第四部分:进阶项目](part4.md) + [练习 25:`xargs`](ex25.md) + [练习 26:`hexdump`](ex26.md) + [练习 27:`tr`](ex27.md) + [练习 28:`sh`](ex28.md) + [练习 29:`diff`和`patch`](ex29.md) + [第五部分:文本解析](part5.md) + [练习 30:有限状态机](ex30.md) + [练习 31:正则表达式](ex31.md) + [练习 32:扫描器](ex32.md) + [练习 33:解析器](ex33.md) + [练习 34:分析器](ex34.md) + [练习 35:解释器](ex35.md) + [练习 36:简单的计算器](ex36.md) + [练习 37:小型 BASIC](ex37.md) + [第六部分:SQL 和对象关系映射](part6.md) + [练习 38:SQL 简介](ex38.md) + [练习 39:SQL 创建](ex39.md) + [练习 40:SQL 读取](ex40.md) + [练习 41:SQL 更新](ex41.md) + [练习 42:SQL 删除](ex42.md) + [练习 43:SQL 管理](ex43.md) + [练习 44:使用 Python 的数据库 API](ex44.md) + [练习 45:创建 ORM](ex45.md) + [第七部分:大作业](part7.md) + [练习 46:`blog`](ex46.md) + [练习 47:`bc`](ex47.md) + [练习 48:`ed`](ex48.md) + [练习 49:`sed`](ex49.md) + [练习 50:`vi`](ex50.md) + [练习 51:`lessweb`](ex51.md) + [练习 52:`moreweb`](ex52.md)