用 Claude Code 实战 Python · 第 05 题
第 5 课:把这套方法带回你自己的项目
迁移工作流——而不是代码——到你拥有的一个脚本上:契约、错误隔离、舍入、原子写入,以及一份诚实的验证记录。
在用 Agent 做题?一句话开始整门课程:
Read https://flypython.com/skills/flypython/SKILL.md and start the FlyPython course `hands-on-python-with-claude-code`.用 Claude Code 实战 Python · 第 05 题
迁移工作流——而不是代码——到你拥有的一个脚本上:契约、错误隔离、舍入、原子写入,以及一份诚实的验证记录。
在用 Agent 做题?一句话开始整门课程:
Read https://flypython.com/skills/flypython/SKILL.md and start the FlyPython course `hands-on-python-with-claude-code`.选一个你真实拥有的脚本,写下它的任务契约(第 2 课的练习),并把本 课程中最小可用的一片迁移过去——附测试、一条验证命令,以及一份说明 测试没证明什么的记录。
课程项目是宽容的:数据小、测试现成、契约替你写好。回到你的项目, 习惯要么迁移过去,要么蒸发掉。迁移成功的关键是收缩范围:一个脚本、 一份契约、一个从红变绿的测试——不是一次重写。
tests/test_report_tool.py 的形状——输出用 tempfile、数据内联、
一个行为一个断言。迁移哪种模式,取决于你脚本真实的故障方式:
| 如果你的脚本…… | 迁移本课程的这个模式 |
|---|---|
| 一行坏数据就崩溃 | 以 {"index", "reason"} 收集的错误隔离 |
打印出 0.30000000000000004 | 在聚合边界做两位小数舍入 |
| 中断时留下写了一半的输出 | 临时文件 + os.replace 的原子写入 |
| 混用两种输入格式 | 一个加载器 + 明确拒绝不支持的类型 |
| 没有办法说”完成” | 验证命令:失败的 starter + 可达的目标 |
同样要看清局限,因为夸大测试的作用只会让项目受伤:
guides/ 目录)。交付这一小片。在项目的干净检出(或同事的机器)上运行你新的验收 命令,确认能复现相同结果。如果不行,说明命令依赖你的机器——修命令, 不要找借口。
你的项目现在拥有:一份书面契约、一个曾经失败现在通过的测试、一条 能同时演示两者的命令、一份三行验证记录。这就是整门课程压缩进你 代码库的样子。
契约、测试输出记录、验证记录。如果这套工作流对你有用,课程落地页
列出了下一步去向——教学偏差请通过 course-feedback issue 表单反馈。
提示
考你能不能把这套工作流——而不是代码——搬到你自己一个脚本上:任务契约、隔离运行、诚实记录。
可移植的内核是:原子 JSON 写、一个带舍入的聚合、main 的退出码。你的脚本用不到分组机制就别搬。
写下你的新测试没有证明什么——那张未验证清单就是本课的重点,不是附注。
提交
提交 python verify.py 为本检查点打印的 8 位认领码。自报关卡要先完成课后问题,再运行 python verify.py --attest l05。
只有记录积分和徽章才需要账号——读题和解题永远免费。
把这题交给它(悬停出现复制按钮)——解题、验证、提交全程自动:
请完成 FlyPython 挑战课程「用 Claude Code 实战 Python」(course id course-claude-code)的检查点 l05。
机读简报:https://flypython.com/api/challenges/hands-on-python-with-claude-code
打开课程文件夹,先读 TASK.md——它就是契约。
规则:最小变更、不新增依赖、绝不修改 tests/ 或 solution/。
用 python verify.py 检查 starter/;自报关卡先让我回答课后问题,再运行 --attest ID 取得码。
目标:只做检查点 l05 这一道题,完成后立即提交。用你Agent 页生成的令牌(环境变量 FLYPYTHON_TOKEN),它可以直接记录结果:
curl -X POST https://flypython.com/api/claims \
-H "Authorization: Bearer $FLYPYTHON_TOKEN" \
-H "Content-Type: application/json" \
-d '{"claims":[{"course":"hands-on-python-with-claude-code","checkpoint":"l05","code":"<8-char code>"}]}'或一次性安装完整的 FlyPython Agent Skill,连粘贴都省了。
解题在你的机器上运行——Agent 通过 /api/challenges/hands-on-python-with-claude-code/files 自己取回课程文件,你无需手动下载。想直接读源码?在 GitHub 上查看文件夹 ↗