12 周课程 / 第 12 周 10 分钟阅读

第 12 周:三阶段完整模拟与最终复盘

最后一周不追求再学多少新语法。目标是在一次连续的 180 分钟模拟中,把已经会的内容稳定拿分,随后用证据找短板,并在短时间内完成第二次纠正。

建议用时:8-10 小时,其中完整模拟 3 小时,复盘和重做 4-5 小时。

本周目标#

学完本周,你应该能够:

  • 独立完成第一阶段、第二阶段和第三阶段连续模拟。
  • 按评分点检查和提交文件。
  • 从错题定位到具体知识或流程问题。
  • 对高风险任务进行第二次独立重做。
  • 形成比赛当天可执行的时间、文件和排错清单。
  • 达到总分 74/100 的最低目标,冲刺 80 分以上。

12.1 最终模拟规则#

使用本目录的三阶段模拟赛:

  1. 先把 模拟赛/output/ 清空,只保留测试目录。
  2. 不修改 模拟赛/data/ 中的输入文件。
  3. 第一阶段 30 分钟,不打开电脑。
  4. 第二阶段 60 分钟,关闭网络。
  5. 第三阶段 90 分钟,只访问允许的 AI 网站。
  6. 三阶段连续完成,中间不查看参考答案。
  7. 总时间到 180 分钟立即停止。
  8. 全部结束后再打开参考答案与评分。

如果本次模拟用于最终验收,应尽量在同一时段完成,模拟正式比赛的真实疲劳程度。

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 第二阶段:断网实操策略#

每个任务固定五步#

  1. 读题目,圈出文件名、输出名、格式和排序规则。
  2. 写 2-3 行伪代码。
  3. 先完成最小可运行版本。
  4. 用题目数据运行。
  5. 对照评分点检查格式和输出位置。

哪个先做#

通常按题目顺序做,但如果你对 Excel 更熟,可先把最有把握的任务完成。不要为了追求顺序,把大量时间压在完全不熟的题上。

何时暂停某题#

超过该题分配时间 3 分钟仍没有可运行成果时:

  1. 写下当前错误。
  2. 保存已经正确的代码。
  3. 转到下一题。
  4. 最后留 5-8 分钟回来。

临场排错顺序#

文件路径
→ 文件是否存在
→ 函数名称和参数
→ 数据类型
→ 循环边界
→ 输出格式
→ 保存位置

先排除路径和文件名问题,因为它们最常导致“程序看似正确但没有结果”。

12.6 第三阶段:AI 辅助策略#

不要从 0 直接要完整程序#

固定协作顺序:

  1. 让 AI 复述字段和规则。
  2. 让 AI 拆函数。
  3. 分功能生成最小代码。
  4. 自己运行。
  5. 用报错原文继续提问。
  6. 让 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 复盘要回答的问题#

每道失分题按下面五问分析:

  1. 正确答案是什么?
  2. 我的答案是什么?
  3. 第一个错误发生在哪一步?
  4. 这是知识缺口、推演错误、路径问题、格式问题还是时间问题?
  5. 下一次用什么可执行动作避免?

错误归因示例#

不合格:

我太粗心了。

合格:

任务五 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 最终自测题#

不看资料回答:

  1. range(1, 10, 3) 产生哪些数?
  2. a = [3, 1, 2]; a.sort(reverse=True) 后,a 和返回值分别是什么?
  3. "Python"[1:4] 和 "Python"[::-1] 分别是什么?
  4. append() 与 extend() 有何区别?
  5. 计数时为什么使用 dict.get(word, 0) + 1?
  6. zip([1, 2, 3], ["A", "B"]) 得到什么?
  7. 冒泡排序第一轮后,最大值会到哪里?
  8. 二分查找需要什么前提?
  9. open(..., "w") 对已有文件有什么影响?
  10. CSV 读出的数字为什么还要转换?
  11. findall 有分组和无分组时返回形式有何不同?
  12. os.rename() 后旧路径还是新路径存在?
  13. Excel 公式为什么必须以字符串形式以 = 开头?
  14. openpyxl 会自动计算公式吗?
  15. 三段式 AI 协作是什么?

自测答案#

  1. 1, 4, 7。
  2. a 是 [3, 2, 1],返回值是 None。
  3. 分别是 "yth" 和 "nohtyP"。
  4. append() 加入一个元素;extend() 逐个加入另一个可迭代对象中的元素。
  5. 新键第一次出现时从 0 开始,并立即保存为 1。
  6. [(1, "A"), (2, "B")]。
  7. 到达末尾。
  8. 数据已按与比较规则一致的方式排序。
  9. 立即清空原内容,再执行写入。
  10. CSV 读取结果是字符串,计算前要转换成整数或浮点数。
  11. 无分组返回完整匹配字符串列表;有分组通常返回分组内容或元组列表。
  12. 新路径存在,旧路径通常不存在。
  13. Excel 需要识别该文本为公式表达式。
  14. 不会。它保存公式,由 Excel/WPS 计算。
  15. 先确认需求,再分功能实现,最后用测试和审查闭环。

12.14 过关检查#

  • 三阶段连续模拟完整参加,没有中途查答案。
  • 能解释每一道失分题的第一个错误点。
  • 至少完成一类变式题,而不是只重做原题。
  • 第二次重做时,同类错误明显减少。
  • 阶段一达到 21 分以上。
  • 阶段二达到 24 分以上。
  • 阶段三达到 18 分以上。
  • 总分达到 74 分以上。
  • 说明文档能让他人独立运行并验证结果。
  • 比赛当天检查清单已手写或打印,可以脱离本课程使用。

完成本周后,不需要继续盲目刷新题。选择最低分的两个模块,每周各做一次限时变式,保持代码和复盘记录即可。

本周进度

完成讲义、练习和验收后再标记。