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