Tiny Python Projects - Python小程序入门实践
作者:Ken Youens-Clark | Manning出版 | 2020年 云盘路径:/books/python/Tiny_Python_Projects.pdf 文件大小:11.33 MB | 页数:439页
核心观点
本书通过22个小型编程项目,教授Python基础知识和测试驱动开发(TDD)。每个项目都是完整可运行的命令行程序,涵盖字符串操作、列表、字典、正则表达式、文件处理等核心概念。
关键概念
1. 测试驱动开发(TDD)
- 先写测试,再写实现
- 使用pytest框架编写测试
- 每个项目都有配套的测试套件
- “写、测试、重复”的迭代开发流程
2. argparse模块
- 所有程序都使用argparse处理命令行参数
- 位置参数 vs 选项参数
- 帮助信息的自动生成
- 参数验证和错误处理
3. 核心数据结构
- 字符串:切片、格式化、方法调用
- 列表:增删改查、排序、推导式
- 字典:键值对、推导式、查找表
- 集合:去重、交集、并集
4. 正则表达式
- 匹配和替换文本模式
- 捕获组和非捕获组
- re模块的核心函数
项目概览
| 章节 | 项目名称 | 核心知识点 |
|---|---|---|
| 1 | Hello World | 基础程序结构、测试、argparse |
| 2 | 乌鸦巢 | 字符串处理、条件分支 |
| 3 | 野餐清单 | 列表操作、条件判断 |
| 4 | 跳数字 | 字典编码、转换 |
| 5 | 呐喊者 | 文件读写、STDOUT |
| 6 | 字数统计 | 文件读取、迭代、格式化 |
| 7 | 盖什克朗 | 字典查找、文件处理 |
| 8 | 苹果与香蕉 | 字符串替换(8种方法) |
| 9 | 随机辱骂 | 随机生成、列表组合 |
| 10 | 电话 | 字符串变异 |
| 11 | 啤酒瓶歌 | 函数编写、TDD |
| 12 | 勒索信 | 随机大写文本 |
| 13 | 圣诞十二天 | 算法设计、序数词 |
| 14 | 押韵器 | 正则表达式、词干提取 |
| 15 | 肯塔基修士 | 更多正则表达式 |
| 16 | scrambling | 词中字母重排 |
| 17 | 疯狂填词 | 正则表达式填空 |
| 18 | 数字编码 | ASCII值、数值编码 |
| 19 | 今日锻炼 | CSV解析、表格输出 |
| 20 | 密码强度 | 安全密码生成 |
| 21 | 井字棋 | 状态管理、游戏逻辑 |
| 22 | 井字棋增强版 | 类型提示、交互版本 |
重要结论
- 小而完整:每个项目虽小但完整,包含测试、文档、可执行文件
- 多种解法:同一问题提供多种实现方式(循环、推导式、map、filter等)
- 渐进式学习:从简单到复杂,逐步建立信心
- 实用导向:每个程序都能实际运行,不是死记语法
可行动点
- 学习TDD工作流:先写测试再写代码
- 掌握argparse的参数定义模式
- 理解不同字符串操作的适用场景
- 练习正则表达式的多种写法
- 培养”先测试后实现”的习惯
关联笔记
- Effective-C++-中文版 - C++编程思想,对比Python更简洁的语法
- Exceptional-C++-侯捷版 - C++最佳实践,Python也有类似的最佳实践
- Modern-C++-Design - C++设计模式,Python的duck typing提供了另一种范式
备注
本书适合有一定编程基础但想系统学习Python的人。作者强调”做中学”的理念,每个项目都有明确的输入输出和测试用例,非常适合自我学习。439页的内容密度适中,建议按顺序完成所有项目。