(一) 考题一:Excel 报表生成脚本
1. 项目目标
读取月度销售原始 Excel,自动完成脏数据清洗、多维度销售额统计,输出包含 4 个工作表的报表文件,程序具备异常容错能力,不修改原始文件。
2. 输入与输出
输入文件:sales_raw.xlsx
固定字段:日期、销售员、产品、数量、单价、地区
输出文件:report.xlsx
固定 4 个工作表:明细清洗后、按销售员、按地区、总览
3. 业务规则(清洗逻辑)
1. 关键字段为空→删除整行;
2. 订单数量≤0→剔除异常行;
3. 全字段完全一致的重复行→只保留 1 条;
4. 单行销售额 = 数量 × 单价;
5. 分组汇总:按销售员求和、按地区求和;
6. 总览输出月度总销售额 + 有效订单条数。
4.异常处理要求
1. 原始文件不存在;
2. 原始表格缺少关键字段;
3. 读取文件失败(文件损坏);
4. 清洗后无任何有效数据;
5. 所有异常仅打印文字提示,程序不崩溃退出。
5.验收标准
1. 一键运行自动生成`report.xlsx`,4 个工作表完整;
2. 汇总数值与人工手工计算结果完全一致;
3. VS Code 预览只能看到第一张 sheet,用 WPS/Excel 打开可切换全部 4 个标签;
4. 各类异常场景程序友好提示,无报错闪退。
6.测试用例
用例 1:正常业务用例
用例 2:边界异常用例 1(原始文件缺失)
用例 3:边界异常用例 2(清洗后无有效数据)
7.可运行源代码工程
https://download.csdn.net/download/2601_95771059/93789052?spm=1001.2014.3001.5503
8. AI 协作过程记录
(1)关键对话摘要
1. 我给出业务背景与完整需求,请求编写 Python 清洗统计代码;
2. AI 给出初始代码,实现清洗、分组、多 sheet 写入;
3. 我发现 VS Code 预览只能看到第一张 sheet,误以为少了工作表;
4. AI 定位问题:编辑器预览插件不支持多 sheet,必须用 WPS 打开,并给出开启工作表标签的设置方法;
5. 我补充要求增加异常容错:文件不存在、字段缺失、空数据;AI 完善 try-except 与前置判断;
6. 最后共同完成完整实验报告与全套交付文档。
(二) 考题二:FastAPI 记账接口
1. 项目目标
实现简易记账 HTTP 接口,支持流水录入、筛选查询、收支统计;具备参数校验、异常容错,可选用内存或 SQLite 存储。
2. 输入与输出
接口服务:FastAPI Web 服务
POST /records:新增流水,入参:金额、类型、分类、日期
GET /records:查询流水,支持筛选、分页,返回流水列表
GET /summary:收支汇总,入参:日期区间,返回收入合计、支出合计、结余
3. 业务规则
1. 金额必须大于 0;
2. 类型仅允许:收入 / 支出;
3. 日期格式合法;
4. 流水查询支持按类型、分类、起止日期筛选,支持分页;
5. 汇总接口按指定日期区间统计收支,结余 = 收入合计 - 支出合计。
4. 异常处理要求
1. 参数非法,返回 4xx 状态码 + 结构化错误信息;
2. 测试用例覆盖校验逻辑;
3. 说明并发写入的数据安全方案。
5. 验收标准
1. 服务可正常启动,全部接口可成功调用;
2. 参数校验生效,非法参数返回对应 4xx 状态码;
3. 使用 pytest 编写用例,覆盖核心业务逻辑;
4. 能说明并发写入场景下的数据一致性保障方案。
6.截图
服务启动截图:uvicorn 启动成功终端
接口文档首页截图:127.0.0.1:8000/docs
pytest 测试截图:5 个用例全部 PASS
非法参数报错截图:400 类型非法结构化返回
7.可运行源代码工程
https://download.csdn.net/download/2601_95771059/93800087
8.AI 协作过程记录
对话摘要
1. 提交考题需求,确认接口字段、校验规则、4xx 结构化报错、pytest、并发说明等验收要点;
2. 初始版本校验简单,错误信息为默认格式,不满足「结构化错误信息」要求;
3. 修改代码,自定义 JSON 格式异常返回,区分 400(类型错误)和 422(金额 / 日期错误);
4. 编写 pytest 自动化用例,覆盖正常、两种异常场景;
5. 学习 uvicorn 启动方式,在`/docs`页面手动测试接口、截取测试截图;
6. 整理全套交付文档,包含需求清单、测试表格、复盘文字。