第 12 周:三阶段完整模拟与最终复盘
最后一周不追求再学多少新语法。目标是在一次连续的 180 分钟模拟中,把已经会的内容稳定拿分,随后用证据找短板,并在短时间内完成第二次纠正。
建议用时:8-10 小时,其中完整模拟 3 小时,复盘和重做 4-5 小时。
本周目标#
学完本周,你应该能够:
- 独立完成第一阶段、第二阶段和第三阶段连续模拟。
- 按评分点检查和提交文件。
- 从错题定位到具体知识或流程问题。
- 对高风险任务进行第二次独立重做。
- 形成比赛当天可执行的时间、文件和排错清单。
- 达到总分 74/100 的最低目标,冲刺 80 分以上。
12.1 最终模拟规则#
使用本目录的三阶段模拟赛:
- 先把
模拟赛/output/清空,只保留测试目录。 - 不修改
模拟赛/data/中的输入文件。 - 第一阶段 30 分钟,不打开电脑。
- 第二阶段 60 分钟,关闭网络。
- 第三阶段 90 分钟,只访问允许的 AI 网站。
- 三阶段连续完成,中间不查看参考答案。
- 总时间到 180 分钟立即停止。
- 全部结束后再打开参考答案与评分。
如果本次模拟用于最终验收,应尽量在同一时段完成,模拟正式比赛的真实疲劳程度。
12.2 模拟前的准备#
文件准备#
- 确认输入数据文件存在。
- 清空旧的
output/结果,避免把上次文件误当本次成果。 - 准备草稿纸和笔,用于第一阶段。
- 准备计时器,不依赖手机提醒。
- 准备说明文档模板。
技术准备#
- 能运行 Python 文件。
-
openpyxl可用。 - Excel 或 WPS 能正常打开输出工作簿。
- DeepSeek、通义千问或 Kimi 中至少一个可访问。
- 网络状态符合各阶段要求。
状态准备#
- 睡眠充足,不在极度疲劳时正式测评。
- 准备好纸笔记录报错和待办。
- 明确目标分数和时间点。
- 接受“先拿分再完善”,不在单题上无限卡住。
12.3 180 分钟时间表#
| 时间 | 阶段 | 主要任务 |
|---|---|---|
| 0:00-0:30 | 第一阶段 | 纸面选择、输出、填空、算法过程 |
| 0:30-0:33 | 切换 | 收起纸面材料,打开编辑器和数据 |
| 0:33-0:39 | 第二阶段任务一 | turtle 图形 |
| 0:39-0:49 | 第二阶段任务二 | 算法和函数 |
| 0:49-1:01 | 第二阶段任务三 | 文本报告 |
| 1:01-1:11 | 第二阶段任务四 | 正则与目录 |
| 1:11-1:27 | 第二阶段任务五 | Excel |
| 1:27-1:30 | 第二阶段检查 | 文件与原件检查,关闭网络任务 |
| 1:30-2:38 | 第三阶段 | CSV、四张表、测试 |
| 2:38-3:00 | 第三阶段文档 | 写说明、截图、最终检查 |
表中第三阶段从 1:30 开始,到 3:00 结束,共 90 分钟。可按计时器显示的总分钟 90、150、180 作为阶段检查点。
12.4 第一阶段:纸面得分策略#
先做会做的#
- 选择题先做,遇到复杂推演标记后回看。
- 输出题按语句逐行写变量状态。
- 程序填空先判断函数目的,再考虑参数。
- 算法过程题用表格记录每一轮。
必须检查#
- 列表方法是否改变原列表。
sort()和sorted()的返回值。- 切片是否包含终点。
range()终点是否包含。continue后哪些语句会跳过。- 冒泡和选择每轮目标是否混淆。
- turtle 外角是否计算正确。
randint是否包含两端。
纸面答题格式#
输出题按行编号,算法题写“轮次 + 当前序列”。即使最终答案错,完整过程也可能得到过程分。
12.5 第二阶段:断网实操策略#
每个任务固定五步#
- 读题目,圈出文件名、输出名、格式和排序规则。
- 写 2-3 行伪代码。
- 先完成最小可运行版本。
- 用题目数据运行。
- 对照评分点检查格式和输出位置。
哪个先做#
通常按题目顺序做,但如果你对 Excel 更熟,可先把最有把握的任务完成。不要为了追求顺序,把大量时间压在完全不熟的题上。
何时暂停某题#
超过该题分配时间 3 分钟仍没有可运行成果时:
- 写下当前错误。
- 保存已经正确的代码。
- 转到下一题。
- 最后留 5-8 分钟回来。
临场排错顺序#
文件路径
→ 文件是否存在
→ 函数名称和参数
→ 数据类型
→ 循环边界
→ 输出格式
→ 保存位置
先排除路径和文件名问题,因为它们最常导致“程序看似正确但没有结果”。
12.6 第三阶段:AI 辅助策略#
不要从 0 直接要完整程序#
固定协作顺序:
- 让 AI 复述字段和规则。
- 让 AI 拆函数。
- 分功能生成最小代码。
- 自己运行。
- 用报错原文继续提问。
- 让 AI 按检查清单审查。
AI 回答必须对应本地事实#
对每段生成代码确认:
- 字段名来自实际表头。
- 文件路径与目录一致。
openpyxl版本允许所用方法。- 排序键符合题目优先级。
- 输出不是输入原文件。
备用方案#
若某个 AI 服务不可用,尽快切到另一个允许的服务。不要把 20 分钟花在刷新网页上。
若 AI 给出的代码持续无法理解,改问更小的问题:
只解释这一行为什么报 KeyError:<代码和报错原文>
12.7 完成后的评分#
三阶段结束后再评分:
| 阶段 | 满分 | 最低目标 | 稳定目标 |
|---|---|---|---|
| 第一阶段 | 30 | 21 | 24 |
| 第二阶段 | 40 | 24 | 28 |
| 第三阶段 | 30 | 18 | 22 |
| 总分 | 100 | 63 | 74 |
本课程最终合格目标仍是总分 74 分以上。63 分只表示有基础,不能直接停止复盘。
记录表#
| 项目 | 第一次 | 错题数 | 主要原因 | 第二次目标 |
|---|---|---|---|---|
| 第一阶段 | ||||
| 第二阶段 | ||||
| 第三阶段 | ||||
| 总分 |
12.8 复盘要回答的问题#
每道失分题按下面五问分析:
- 正确答案是什么?
- 我的答案是什么?
- 第一个错误发生在哪一步?
- 这是知识缺口、推演错误、路径问题、格式问题还是时间问题?
- 下一次用什么可执行动作避免?
错误归因示例#
不合格:
我太粗心了。
合格:
任务五 Excel 的 G3 公式写成了 =SUM(D2:F2),
原因是公式行号没有跟循环变量变化。
下次先在纸上写出 D2、G2 和第 3 行对应关系,
保存后用 openpyxl 读取 G2 和 G3 检查。
可执行动作比“下次认真”有用。
12.9 48 小时纠正计划#
第一天:补知识#
| 失分类型 | 行动 |
|---|---|
| 运算符、类型、分支 | 重做第 1 周练习 |
| 循环、函数、类 | 重做第 2 周作品 |
| 字符串、列表、元组 | 重做切片和排序推演 |
| 字典、集合、分组 | 手写计数与分组模式 |
| 算法过程 | 手画冒泡、选择、二分三轮 |
| turtle | 重画三种规则图形 |
| 文件路径与读写 | 写一个读入、处理、另存程序 |
| 正则与目录 | 重做第二阶段任务四 |
| Excel 基础 | 重做公式和保存检查 |
| Excel 综合 | 重做第二阶段任务五 |
| AI 协作与文档 | 重写需求说明和运行步骤 |
第二天:做变式#
不要只重做原题。至少做一项变化:
- 改变文件名。
- 改变排序字段。
- 增加空数据测试。
- 改变并列规则。
- 增加一张工作表。
能处理变化,才说明掌握了方法。
12.10 第二次独立重做#
第二次重做规则:
- 不打开第一次的程序。
- 不打开参考答案。
- 只保留题目和输入数据。
- 第一阶段 25 分钟。
- 第二阶段 50 分钟。
- 重点检查第一次失分的任务。
第二次完成后重新评分。目标不是每题满分,而是同类错误不再重复出现。
12.11 最终知识清单#
Python 语法#
- 变量、类型转换、
id与type。 - 算术、比较、逻辑、赋值运算。
if/elif/else、循环、break、continue。- 函数参数、返回值、作用域。
- 类、对象、
__init__、self、属性、方法。 - 字符串索引、切片和方法。
- 列表增删改、排序、别名与复制。
- 元组、字典、集合、
zip。
算法#
- 最值、平均值。
- 顺序查找与全部位置查找。
- 累加、累乘、递推、递归。
- 冒泡排序、选择排序。
- 有序列表二分查找。
文件与数据#
- 路径、相对路径、目录创建。
with open、读取和写入、UTF-8。- CSV
DictReader。 - 正则提取、分组、去重、数值排序。
os.path、os.rename、shutil.copy。- 异常处理与错误提示。
Excel#
- 工作簿、工作表、单元格。
iter_rows、append、公式字符串。- 表头、列宽、数字格式。
copy_worksheet、另存输出。- 分组统计、排序、异常筛选。
turtle#
- 前进、后退、左右转、坐标。
- 抬笔、落笔、颜色、线宽、填充。
- 正多边形外角和五角星轨迹。
12.12 比赛当天检查清单#
开始前#
- 确认输入文件存在。
- 确认输出目录。
- 确认时间阶段和网络要求。
- 纸笔就绪。
第一阶段#
- 先易后难。
- 输出题逐行推演。
- 算法题写轮次。
- 到 30 分钟立即切换。
第二阶段#
- 每个文件命名正确。
- 不覆盖输入文件。
- 文本编码和输出格式正确。
- 目录、复制、重命名都检查新旧路径。
- Excel 公式覆盖最后一行。
- 保存后重新打开检查。
第三阶段#
- AI 只用于允许的网站。
- 分功能运行和测试。
- 四张表字段和排序正确。
- 说明文档写清环境、命令、路径、功能、结果。
- 所有输出文件均位于指定目录。
提交前#
- 程序文件齐全。
- 输出文件非空。
- 文件能正常打开。
- 运行命令可复现。
- 没有遗留测试文件影响提交。
- 最后再核对一次题目文件名。
12.13 最终自测题#
不看资料回答:
range(1, 10, 3)产生哪些数?a = [3, 1, 2]; a.sort(reverse=True)后,a和返回值分别是什么?"Python"[1:4]和"Python"[::-1]分别是什么?append()与extend()有何区别?- 计数时为什么使用
dict.get(word, 0) + 1? zip([1, 2, 3], ["A", "B"])得到什么?- 冒泡排序第一轮后,最大值会到哪里?
- 二分查找需要什么前提?
open(..., "w")对已有文件有什么影响?- CSV 读出的数字为什么还要转换?
findall有分组和无分组时返回形式有何不同?os.rename()后旧路径还是新路径存在?- Excel 公式为什么必须以字符串形式以
=开头? openpyxl会自动计算公式吗?- 三段式 AI 协作是什么?
自测答案#
1, 4, 7。a是[3, 2, 1],返回值是None。- 分别是
"yth"和"nohtyP"。 append()加入一个元素;extend()逐个加入另一个可迭代对象中的元素。- 新键第一次出现时从 0 开始,并立即保存为 1。
[(1, "A"), (2, "B")]。- 到达末尾。
- 数据已按与比较规则一致的方式排序。
- 立即清空原内容,再执行写入。
- CSV 读取结果是字符串,计算前要转换成整数或浮点数。
- 无分组返回完整匹配字符串列表;有分组通常返回分组内容或元组列表。
- 新路径存在,旧路径通常不存在。
- Excel 需要识别该文本为公式表达式。
- 不会。它保存公式,由 Excel/WPS 计算。
- 先确认需求,再分功能实现,最后用测试和审查闭环。
12.14 过关检查#
- 三阶段连续模拟完整参加,没有中途查答案。
- 能解释每一道失分题的第一个错误点。
- 至少完成一类变式题,而不是只重做原题。
- 第二次重做时,同类错误明显减少。
- 阶段一达到 21 分以上。
- 阶段二达到 24 分以上。
- 阶段三达到 18 分以上。
- 总分达到 74 分以上。
- 说明文档能让他人独立运行并验证结果。
- 比赛当天检查清单已手写或打印,可以脱离本课程使用。
完成本周后,不需要继续盲目刷新题。选择最低分的两个模块,每周各做一次限时变式,保持代码和复盘记录即可。