批量补录先校验,再计算|学员任务书
从自己的昨日项目继续
起点:本人 D01 金额交互脚本;0与负数尚未拦截。领取 student/W01-D02 当日增量,查看文件再合并,禁止覆盖本人已完成代码。教师只给合同、分段小例、TODO和检查工具;完整实现不在学生包。
商城任务与知识用途
本日完成:batch_orders.py、逐条成功/失败结果、状态拒绝前后记录。条件与短路、真假值、list/dict/tuple/set、索引切片、for/while、range/enumerate、continue/break、try/except/else/finally/raise 都用于这一任务;使用位置及小例见 课堂课件。测试代码属于提供的检查工具,不要求在机制首讲前独立重写测试框架。
分段待办
- 保留 D01 起点提交;输入二、0、-1、1,先手写应该显示的结果。
- 在单笔脚本补条件与异常边界,成功才计算。不可把 NameError 统一显示为输入错误。
- 领取 W01-D02 的 batch_orders.py 与 check_batch.py;已有同名文件时合并TODO,不覆盖本人代码。首次检查必须明确报 STUDENT_TODO。
- 列出每条请求的编号、商品编号、数量文本,先手工填写总数与金额,再写列表、字典和循环。
- 将成功、失败、金额与处理数分开保存;try 完成解析与校验,else 只累计成功,finally 计处理数。
- 单独完成待支付→已支付、待支付→取消、已支付取消拒绝,打印前后状态;继续沿用已有状态合同。
- 将坏记录移到首尾,替换一条合法数量;独立说明 continue 与 break 为什么产生不同未处理范围。
运行和核对
从自己的项目根目录、当前选中Python解释器运行:
python batch_orders.py
python check_batch.py| 场景 | 预期 |
|---|---|
| 日包五条记录 | 成功2、失败3、已处理5、557.00元 |
| 空批次 | 三个计数均0,总额0.00 |
| 二、空文本、2.5 | 格式拒绝,失败定位原记录 |
| 0、-1 | 业务拒绝,不累计 |
| 1与带空格的2 | 分别129.00、258.00 |
| P9999 | 未知商品拒绝 |
| 已支付取消 | 明确拒绝,仍PAID |
个人变化与交付
先在不看参考实现的情况下预测结果,再运行;记录输入、预期、实际、修复及原样本回归。提交代码、固定Git提交、一次故障定位、一次AI差异审查和同伴复现记录。只交全绿截图或生成代码而不能解释,不构成通过。
核心:完成本日分段待办和验收表。进阶:自行换一条同规模业务输入或故障。挑战:减少重复或改进说明,但仍须守住当前合同;不靠提前引入框架、数据库或消息队列替代基础练习。全部必做在课堂实践时段完成,课后复习只整理已做结果。
下一日:D03 用同一批输入提取规则函数,金额、拒绝和状态不变。