用一个可重复运行的 Python 工具整理文本,练习需求拆解、边界检查与回归测试。
目标与约定
实现 solve(lines):接收字符串列表,去除每项首尾空白、合并内部连续空白、删除空行,按 casefold() 去重并保留首次出现的大小写与顺序。输入不是列表或含非字符串时抛出 ValueError。不得修改输入。
第一步:运行起始项目
需要 Python 3.12 或更高版本,仅使用标准库。解压后在此目录运行:
python verify.py
起始代码会报 NotImplementedError,这是待完成的任务。编辑 solution.py 的 solve 函数;sample.json 包含输入与预期输出。
第二步:逐步实现
- 用自己的话列出输入、输出和错误条件。
- 先通过样例,再处理空值、重复、顺序和非法类型。
- 每次小改动后重新运行 python verify.py。
第三步:遇到问题再看提示
先验证所有输入;用 split() 与 join() 规范化空白;用 set 保存 casefold 后的键,列表保存展示值。不要直接返回 set,它会丢失顺序。
常见问题:当前目录错误会找不到 sample.json;默认不运行 reference.py。先看失败用例的输入和断言,不要只为了绿色结果删掉测试。
第四步:验收与复盘
python verify.py
python verify.py --reference
第一个命令检查你的实现,退出码 0 表示此套本地用例通过;第二个检查参考实现。参考实现放在 reference.py,建议先独立尝试。
新增至少两个测试,分别覆盖你遇到的边界和一次真实使用场景。记录命令输出、修改过程与实现局限,在本站项目页保存链接和复盘。本地通过结果由你自行记录,本站不接收或执行用户代码,也不会据此自动标记课程掌握。
延伸练习
将函数接入命令行或网页;为输入增加大小限制;尝试接入真实模型并比较确定性测试与生成效果评估的差别。本项目完成不依赖模型或第三方服务。