最终成果:整理负责人、日期和待确认项,避免把缺失信息编成承诺。
这是一门可离线完成的Python实践课,使用标准库,不需要模型密钥。例子均为教学虚构,不是现实业务数据或真实效果证据。
1. 先看成果
输入示例:
{
"items": [
{
"task": "核对样例",
"owner": "小林",
"due": "2026-10-21"
}
]
}
预期输出:
{
"items": [
{
"task": "核对样例",
"owner": "小林",
"due": "2026-10-21",
"needs_confirmation": false
}
]
}
2. 准备与首次运行
准备Python 3.10或更高版本。完整解压项目包,在包含verify.py的文件夹打开终端。Windows可用py -3代替python,macOS/Linux可用python3。
python --version
python verify.py
起始代码尚未实现,首次看到7项FAIL和NotImplementedError属于正常起点;语法或导入错误会给中文说明且不生成报告。先提交这份失败报告也可以。
3. 输入输出契约
输入items为最多100个对象,每项task为非空字符串(最多500字符);owner、due可为null或字符串,最多100字符,空白字符串转null,其余去首尾空白;due非空须为真实YYYY-MM-DD日期,否则整份输入抛ValueError。每条输出task、owner、due、needs_confirmation,缺负责人或日期时为true,保留顺序,绝不推断日期。
solve(payload)接收一个JSON对象并返回上述JSON结果。任何契约规定的结构或类型错误都应抛ValueError,不返回貌似成功的部分结果。
4. 三段实现与分层提示
1. 保留明确任务
读取任务与空列表,清除两端空白。
关注用例:normal、empty、trim
-
第1层:一段讨论一定是任务吗?
-
第2层:这里只接受已经由人明确列出的非空task。
-
第3层:验证任务字符串,再做去空白处理。
2. 未知就是未知
分别处理缺负责人、缺日期和全部缺失。
关注用例:owner、due、both
-
第1层:能否把会议主持人自动当负责人?
-
第2层:未给出的owner和due用null,不能默认给任何人。
-
第3层:将null和空字符串归一,再计算待确认标志。
3. 交付行动清单
验证真实日期,保持任务顺序。
关注用例:leap
-
第1层:2024年2月29日与2025年同一天都有效吗?
-
第2层:格式检查之外还要用日期解析验证真实性。
-
第3层:要求YYYY-MM-DD,再调用日期解析;不要使用当前时间补值。
先写下自己的预期,再展开一层提示并修改。verify.py默认展示字段差异,仍卡住可加--explain查看诊断。
5. 用本地网页检查自己的输入
python run.py
打开终端显示的本地地址(默认http://127.0.0.1:8870),修改输入并运行,保存输出。端口已占用可运行python run.py --port 8871;不需要停止其他程序。
参考演示可运行python run.py --reference,参考输出不表示你自己的实现通过。
6. 组合挑战与评分
python verify.py --suite challenge --report challenge-report.json
4项挑战各25分,输入、错误类型及所有输出字段符合约定才得该项分数。完整用例与评分依据在project.json的learning.cases中。只表示这组输出符合约定,不证明独立能力。
-
完整与未知混合:逐项判断未知并保序。
-
日期空白转未知:空日期不当作今天。
-
跨年日期:日期有效也不能掩盖未知负责人。
-
非闰年不存在2月29日:格式像日期也要核对真实性,抛ValueError。
7. 自主扩展与提交
增加原文证据或确认状态,保留一个从待确认变为已确认的修订记录;不要自动发送提醒。
至少自建一个测试,先写预期,再运行并保存实际结果。在项目页上传报告,填写两道解释题,展开自主扩展记录,填写需求、JSON输入/预期/实际及修订说明。扩展内容不自动算分,申请人工评价后由人核对。
-
解释题:为什么任务明确却仍可能需要确认?举一个缺少信息的例子。
-
解释题:自建行动项,说明你新增的证据字段如何帮助核对负责人或日期。
报告默认私有;申请后管理员才可看该次报告、项目链接、复盘与扩展证据,可撤回共享。服务器复核报告输出,不执行上传代码、不访问作品链接。修订时保留失败与新报告,不覆盖旧记录。
8. 局限与后续
本项目训练上述确定性规则,不调用模型,不代表完整业务系统。如需以后接入模型,先保留基线,单独明确成本与调用授权、构造错误输出并人工核对,不把本站参考结果当作模型效果。