把资料整理拆成提案、人工确认与结果三个阶段。用纯函数模拟执行,不访问网络或文件,先练清楚权限与停止条件。
目标与约定
实现 solve(payload):payload 为 {items: 字符串列表, approved: 布尔值, limit: 1~10 的整数},limit 默认 3。清理空白与空项,按完全相同字符串去重,最多保留 limit 项。approved=false 返回 {status:'waiting_confirmation', actions:[{title:..., status:'proposed'}]};true 返回 status='completed',每项 status='recorded'。空列表返回 status='empty', actions=[]。类型错误、布尔型 limit 或越界抛 ValueError。不修改输入,不进行真实写入。
第一步:运行起始项目
需要 Python 3.12 或更高版本,仅使用标准库。解压后在此目录运行:
python verify.py
起始代码会报 NotImplementedError,这是待完成的任务。编辑 solution.py 的 solve 函数;sample.json 包含输入与预期输出。
第二步:逐步实现
- 用自己的话列出输入、输出和错误条件。
- 先通过样例,再处理空值、重复、顺序和非法类型。
- 每次小改动后重新运行 python verify.py。
第三步:遇到问题再看提示
必须用 type(value) is bool 检查 approved;Python 的 bool 也是 int 的子类,所以 limit 要用 type(value) is int。批准前后只改变结果状态,不在解析阶段执行副作用。
常见问题:当前目录错误会找不到 sample.json;默认不运行 reference.py。先看失败用例的输入和断言,不要只为了绿色结果删掉测试。
第四步:验收与复盘
python verify.py
python verify.py --reference
第一个命令检查你的实现,退出码 0 表示此套本地用例通过;第二个检查参考实现。参考实现放在 reference.py,建议先独立尝试。
新增至少两个测试,分别覆盖你遇到的边界和一次真实使用场景。记录命令输出、修改过程与实现局限,在本站项目页保存链接和复盘。本地通过结果由你自行记录,本站不接收或执行用户代码,也不会据此自动标记课程掌握。
延伸练习
将函数接入命令行或网页;为输入增加大小限制;尝试接入真实模型并比较确定性测试与生成效果评估的差别。本项目完成不依赖模型或第三方服务。