简介:高二英语寒假作业同步练习资料,聚焦“将来进行时”语法专项,并融合词汇拼写训练,适合高二学生假期自学、备考或教师布置同步作业使用。压缩包内为 1 个 doc 文档,整体仅 56KB,文档结构紧凑,便于打印或线上浏览。已有 54 人学习,可作为寒假英语巩固的轻量选择。资料主体包含约 10 道根据汉语提示完成单词拼写的题目,涉及 appropriate、standard、aspects、depth、alternative、tendency 等基础高频词,均附答案解析与词性说明;语法专题部分系统梳理将来进行时的定义、构成规则,完整展示肯定句、否定句、一般疑问句和特殊疑问句的句式,并配有“下午五点至六点不要打电话,那时他将在开会”等贴近生活的例句及 2 道选择题精讲,帮助学习者准确区分一般将来时与将来进行时,强化“将来某一时刻正在发生”的时态意识。整份资料针对性较强,尤其适合需要集中突破薄弱语法点并通过实例解析理解考点的学生,寒假期间可每日一练,循序渐进巩固英语基础。
1. 为什么程序员的英语复习要重回“将来进行时”
一份只有高中生才需要的 2021高二英语寒假作业同步练习题,真正值得捡起来的章节其实正是“将来进行时”。不是因为它比过去完成时难,而是因为它最容易被“will do”这个直觉覆盖掉。远程会议里听见“We will be migrating the storage at midnight”,如果不理解 will be doing 是在描述“未来那个时刻已经处在一个持续动作里”,很容易把这句话当成一次瞬间操作,然后错过真正重要的时间窗口。将来进行时把动作在时间轴上拉开成一个区间:有起点、有过程、有终点,表达的重点是被判断的那个截面上动作正在进行。寒假作业里反复强调的“含解析”,解析的就是“不要将 will be doing 简单替换成 will do”。下面按工程师习惯的结构拆法,把公式、动词变化、出题代码和解析判定逻辑全部过一遍,适合要写注释、看英文 issue、做技术汇报的人。
2. 将来进行时的结构拆解:时间轴、动词形态与标志词
2.1 先记公式:will be doing 是一个“持续中”的将来切片
课上标准式是:主语 + will be + 现在分词。will 在这里是时态助动词,不表达说话人的意愿,也不承担“打算”这个含义;be 是进行时载体;现在分词表达动作本身。它的时间轴语法和过去进行时一样,只是把坐标原点移到将来:“说话时往未来某个点画一条垂线,这个点正好落在动作过程的中间”。
我平时在看接口文档和发布计划时,喜欢把一般将来时和将来进行时放在一起对比,效果比单背公式更直接:
| 句子 | 强调 | 对应工程语义 |
|---|---|---|
| I will fix the bug. | 将来会发生修 bug 这个动作 | 相当于触发一次修复任务 |
| I will be fixing the bug. | 某个未来时刻我正在修 bug | 相当于一个长任务在运行窗口内持续 |
从这张表能看出,will be doing 多出来的 be doing 并不是装饰,它把“一次性触发”改成“过程进行中的切面”。实际写英文注释时,用 will be doing 还会带出“这件事在背景里进行,不排除被其他事件打断”的语气。
2.2 现在分词规则表:出题和检查都按这张表走
寒假作业里最容易失分的不是时态判定,而是动词的现在分词拼写。自动化检查也一样,不能只按“原形 + ing”处理。约定俗成的四类规则如下:
| 规则 | 原形 | ing 形式 | 说明 |
|---|---|---|---|
| 一般直接加 ing | work | working | 大多数动词 |
| 去末尾 e 加 ing | write | writing | 不发音的 e 去掉 |
| 重读闭音节双写末尾 | run | running | 单辅音结尾、单短元音 |
| ie 变 y 再加 ing | lie | lying | 只针对 lie、die、tie |
解析题中经常把 run/running、write/writing、lie/lying 混在同一个选择题里拼写变形。写自动出题脚本时,我会先把这组例外表建成字典,而不是在运行时临时拼字符串,否则 running 会被拼成 runing,解析部分也跟着错。
2.3 标志词与干扰项:this time tomorrow、when you arrive
将来进行时在题干里的典型信号是“this time + 将来表达”“at + 具体钟点 + 将来表达”“when + 一般现在时从句”。这些词的作用不是告诉你“某动作将来发生”,而是给你一个“判断点”:
- this time tomorrow, I will be flying to Shanghai.
- when you arrive, I will be waiting at the main gate.
- at 9 p.m. tonight, the team will be doing a hotfix.
同样一组标志词,只要把时间轴挪到过去,时态就要换成过去进行时或过去将来进行时。最容易混的组合是“this time yesterday”,它应配 was/were doing。我在排查语法题时会把标志词做成分组表,而不是只背句子:
| 标志词 | 应当配的时态 | 例 |
|---|---|---|
| this time tomorrow | 将来进行时 | This time tomorrow I will be having a meeting. |
| at this time yesterday | 过去进行时 | At this time yesterday I was having a meeting. |
| when you arrive | 主句将来进行,从句一般现在时 | When you arrive, I will be waiting. |
解析里的“含解析”部分,通常就是把这组对应关系说清楚:先找时间词,再判断时间轴指向,最后决定用 will be doing 还是 was/were doing。
2.4 否定和疑问:will 是唯一的词序控制点
将来进行时的否定结构是 will not be doing,缩写为 won’t be doing;疑问句把 will 提到主语前,形成 Will + 主语 + be doing + 其他。这三类结构都保留 be doing 不变,变动的只有 will 的位置和否定词,所以出题时很好用程序控制。
举例:
- The server will be restarting at 2 a.m.
- The server will not be restarting at 2 a.m.
- Will the server be restarting at 2 a.m.?
这三句对应的解析规律是:否定只改 will 后加 not;疑问只做 will 和主语交换。对这种结构稳定的语法点,用正则或模板生成题目都非常可靠,下一章就按这个思路写一套可复现的最小脚本。
3. 用 Python 批量生成将来进行时寒假作业并输出解析:最小脚本
3.1 先准备动词表和标记词表
做自动出题器的第一步不是写循环,而是建词表。将来进行时的句法结构固定,试题质量几乎完全取决于动词和时间标记词是否规范。语法上正确的词表,远比后面再去做语义纠错省力。
verbs = { "work": "working", "watch": "watching", "run": "running", # 双写末尾辅音 "write": "writing", # 去不发音 e "lie": "lying" # ie 变 y } time_exprs = [ "this time tomorrow", "at 9 p.m. tonight", "when you arrive", "at noon next Monday", "this time next week" ]这段词表的选型理由是:动词表只收录现在分词变化有代表性的五个动词,足以覆盖前面 2.2 节的全部规则;时间标记词全部是将来方向,避免出题时生成“at this time yesterday”这样的跨时态干扰项。如果要做提高版题集,可以再补一组静态动词到另一张表里,留到第 4 章专门处理。
3.2 生成肯定、否定和疑问三种题,并同时渲染解析
生成器每次从主语表、动词表和时间表中随机组合一句话,然后按三种题型模板输出题目和解析。
import random subjects = ["I", "you", "we", "they", "he", "she", "it"] verbs = { "work": "working", "watch": "watching", "run": "running", "write": "writing", "lie": "lying" } time_exprs = [ "this time tomorrow", "at 9 p.m. tonight", "when you arrive", "at noon next Monday", "this time next week" ] def build_quiz(n=6, seed=2021): random.seed(seed) items = [] for _ in range(n): subj = random.choice(subjects) verb = random.choice(list(verbs.keys())) ing = verbs[verb] expr = random.choice(time_exprs) mode = random.choice(["affirm", "neg", "question"]) if mode == "affirm": line = f"{subj} will be {ing} {expr}." explain = "将来进行时:will be + 现在分词,动作在该时间点持续中。" elif mode == "neg": line = f"{subj} will not be {ing} {expr}." explain = "否定句:will not be + 现在分词,not 放在 be 前面。" else: line = f"Will {subj} be {ing} {expr}?" explain = "疑问句:把 will 移到主语前,be doing 保持原状。" items.append((line, line, explain)) return items if __name__ == "__main__": for question, answer, explain in build_quiz(): print("题:", question) print("答案:", answer) print("解析:", explain) print("-" * 40)这里的关键参数是seed=2021,它固定随机种子,让同一份题目可以复现,方便后续 diff 或回归测试。n控制题目总量,subjects、verbs、time_exprs三张表决定组合空间。如果希望某类题型出现频率更高,可以把random.choice(["affirm", "neg", "question"])改成带权重的选择函数;如果只需要肯定句,就把列表改成["affirm"]。
输出条目的元组结构是(题目, 答案, 解析),三者在同一行,可以直接落地成 Markdown 或 CSV。所谓“含解析”,实际就是在生成答案的同时,把“判定逻辑”也生成出来,不额外做一次模型推理。
3.3 再给一个最简解析函数:正则切 will be doing
如果手上已经有一批英文句子,想快速判断哪些属于将来进行时,不需要上复杂 NLP 管线,一个正则就能覆盖肯定、否定和疑问三类。
import re def explain_future_progressive(sentence): pattern = r"\b(?:will|Will)(?: not)?\s+(?:\w+\s+)*?be\s+(\w+)\b" m = re.search(pattern, sentence) if not m: return "未匹配到将来进行时结构" return f"匹配到时态结构:will be + {m.group(1)};语义上动作在将来某个时间点处于进行中"这段正则的匹配点在于:(?: not)?负责否定中的 not,(?:\w+\s+)*?负责疑问句里 will 与 be 之间的主语,比如 “Will he be running?” 中的 he。最后一个(\w+)捕获现在分词。用它解析上一节生成题目的结果时,会发现肯定、否定、疑问三种模板都能被同一条规则覆盖,只是否定和疑问需要额外保留否定词和疑问语气。
如果句子中是 won’t,正则需要把(?:will|Will)扩展成(?:will|Will|won\'t)。平时我建议用统一小写后再匹配,避免大小写把规则写散。
4. “含解析”的判定逻辑:三个容易翻车的规则点
4.1 时间点其实是一个观察窗口:at midnight 不等于 starts at midnight
高中解析里常说“将来进行时表示将来某一时刻正在发生的动作”,这句话容易让人误解,以为 at midnight 就是一个瞬间。真正做技术文档翻译和 issue 讨论时,at midnight 是一个“观察截面”:动作可能从 11:30 开始,到 00:10 结束,只是在 00:00 这个截面上处于进行状态。
对比两句:
| 句子 | 语义 |
|---|---|
| The task will run at midnight. | 任务在零点被触发,可能立刻结束,也可能开始后持续更久 |
| The task will be running at midnight. | 零点时任务正处于运行过程中,不关心起点,终点在将来 |
解析题里如果要求“选出表达未来某刻正在进行的选项”,正确答案通常是后者,因为 will run 更像调度事件,will be running 更像运行状态。工程里写 cron 和后台任务注释时,这两个判断方向也完全不同,前者看触发,后者看窗口。
4.2 静态动词和瞬间动词:哪些词不该套用进行时
不是所有动词都能放进 will be doing。自动出题时最需要避免的就是静态动词和瞬间动词,因为它们的进行时在语义上很别扭。静态动词描述状态而非过程,例如 know、understand、belong、want;瞬间动词的动作起点和终点几乎重合,例如 forget、recognize、accept、arrive。
| 动词类型 | 常见动词 | 为什么不用进行时 | 正确选择 |
|---|---|---|---|
| 静态动词 | know, understand, belong, want | 状态不会“正在进行” | will know |
| 瞬间动词 | forget, recognize, arrive, accept | 动作持续时间极短 | will arrive |
常见解析步骤是先找到 will be doing,再把现在分词还原成原形,去静态动词表中查一次。比如 “I will be knowing the answer by tomorrow” 就不是合格句子,应改为 “I will know the answer by tomorrow”。如果考试题标注“改错”,解析文案可以直接写“know 是静态动词,不适用于将来进行时”。
4.3 解析文案的决策顺序:判定主干、标记词和动词类型
一个可靠的解析器,顺序比匹配更重要。我一般把上一章的explain_future_progressive扩展成三层判断,而不是一上来就贴语法公式:
import re static_verbs = { "know", "understand", "belong", "want", "forget", "recognize", "arrive", "accept" } def explain_sentence(sentence, static_verbs=static_verbs): pattern = r"\b(?:will|Will)(?: not)?\s+(?:\w+\s+)*?be\s+(\w+)\b" m = re.search(pattern, sentence) if not m: return "该句缺少 will be doing 结构,请先检查主句谓语" ing = m.group(1) base = ing[:-3] if ing.endswith("ing") else ing if base in static_verbs: return f"{base} 是静态或瞬间动词,通常不用进行时,建议改为一般将来时" time_markers = [ "this time", "at 9 p.m.", "when you arrive", "at noon next" ] if any(marker in sentence for marker in time_markers): return f"命中将来时间标记,时态成立:will be + {ing}" return f"结构存在:will be + {ing};但缺少明确将来时间标记,需结合上下文判断"这里判定顺序是有讲究的:先确认结构,再排除静态动词,最后核对时间标记。如果先查时间标记,静态动词的错误句子也可能被误判为正确;如果只查结构,就会放过 know 这类不被允许的进行时动词。参数static_verbs用集合而非列表,为的是把查找复杂度从 O(n) 降到 O(1),在批量解析几百道题时差异很明显。
对解析题做人工 review 时,也可以按这个顺序在批注里写文案:结构缺失写一句,静态动词写一句,缺时间标记再写一句。每一层都比“语法不对”这种笼统说法更有指导意义。
5. 把将来进行时落进日常技术写作:一份检查模板和一个验证技巧
5.1 写 commit message、发布说明和例会汇报时怎么选时态
技术文档里,一般将来时用于描述“要触发的一个动作”,将来进行时用于描述“某个时间窗口里正在进行的动作”。写 commit message 时,存量改动用过去时,后续行为用一般将来时;但涉及后台任务或长期迁移,我会在注释里用一句将来进行时把窗口说清楚:
The worker will be retrying failed jobs between 2 a.m. and 3 a.m.发布说明里如果只写 “The migration will run at 2 a.m.”,用户会理解成两点整开始迁移;如果写 “The migration will be running at 2 a.m.”,则强调两点整这个观察点上迁移处于执行中。二者不是同义替换,而是视角不同。例会汇报也一样,“Tomorrow I will work on the data migration” 听起来像一个决定;“Tomorrow I will be working on the data migration” 更像在描述明天那段时间自己的状态,语气更偏向已安排任务。
5.2 30 秒检查模板:三问之后再过一遍动词表
我在 review 英文技术文档时,会按三问快速判断该不该用将来进行时:
- 句子里有没有明确的未来时间点,或能推断出观察时刻?
- 谓语动词原形是否在静态动词或瞬间动词表里?
- 想表达的是“触发一次动作”还是“动作在时间窗口内持续”?
第 1 问决定时态选型,没有将来时间点时不优先用将来进行时;第 2 问直接否决错误选项;第 3 问负责区分 will do 和 will be doing。把三个问题落地成一个可以反复使用的验证动作:将句子丢进 3.3 节的explain_future_progressive,确认是否匹配will be + 现在分词;再手工看一眼动词原形,静态动词直接改一般将来时。
把这条规则存成代码注释,效果比背语法书更好:
# If the action lasts across a time slice: use will be doing. # If the action is a trigger at a single moment: use will do.下次再看到一份寒假作业里的将来进行时题目,不用急着抄口诀,先在时间轴上画一个观察点,然后确认动词类型,答案和解析都会清楚很多。
本文还有配套的精品资源,点击获取