欢迎来到猿辅导!
区分一般过去时与现在完成时,先问句子是在交代过去某时发生的事,还是在谈与现在相连的经历、结果或持续状态。只看“发生在过去”不够,因为两种表达都可能涉及过去。以下人物和对话均为原创语法练习情境,判断以给出的上下文为依据,不把一个时间词当成适用于所有句子的万能按钮。
Mia lost her key yesterday. 这句话把丢钥匙这件事放在昨天,使用一般过去时,谓语为动词的过去式。它没有单凭时态告诉我们现在是否已经找到钥匙;后面完全可以接“后来找到了”,也可以接“到现在还没找到”。不要把一般过去时简单理解成“现在一定没有影响”。
Mia has lost her key, so she cannot open the door now. 这里关注的是丢钥匙与眼前不能开门之间的联系,使用现在完成时:has加过去分词lost。后半句明确补出了当前结果。如果抽掉这段语境,只保留一张含糊的“丢钥匙”图片,就不应声称只有一种时态可以表达。
选择之前可以先用中文说一句自己要强调什么:是在回答“昨天出了什么事”,还是“现在为什么进不了门”。表达任务不同,语法选择也可能不同。时态帮助安排叙述视角,而不是独立代替上下文说明全部事实。

在通常的中学英语表达中,yesterday、last week和表示某个已结束过去时点的短语,用来定位过去事件时与一般过去时配合。例如 We visited the museum last Sunday. 句子是在交代上个星期日的参观,不需要为了表示“我们现在有这个经历”而把同一句中的visited改成have visited。
错误句 Mia has lost her key yesterday. 把现在完成时与定位昨天的时间状语直接放在一起,不符合这里的标准表达。可以改成 Mia lost her key yesterday,保留过去时间;如果语境要强调当前结果,可以另写 Mia has lost her key,再用后续句子说明眼前情况。修改时需保留自己真正要表达的信息,而不是为了套规则随意删除必要时间。
Have you ever visited a science museum? 询问的是截至现在是否有过这样的经历,不指定某次参观的具体过去时点。回答者可以先说 Yes, I have,再接 I visited one last month. 后一句把经历落实为上个月的一次事件,因此切换到一般过去时是自然的。
这说明一段对话不必只使用一种时态。说过一次现在完成时,并不要求后面所有句子都保持完成时;问过过去的事,也不意味着不能再讨论与现在有关的结果。判断每个句子的具体功能,比只看上一句用了什么时态更可靠。
ever、already、just等词可以提供线索,但还要检查完整句子的时间定位与语篇功能。练习时先圈出语境中明确交代的时间,再说明是否强调截至现在的经历或结果;不要把所有线索压缩成一张无需理解句意的关键词表。
I have lived here for two months. 表示居住状态从过去开始并持续到现在。for后接一段时间,而since可以接起点,例如 since September。它们的差异在于说明持续多久与从何时开始,不是哪个词一出现就能自动决定整个句子。还应检查句子表达的状态是否确实延续到说话时。
例如 I lived there for two months last year. 虽然也有for two months,但last year把这段居住经历放在已经结束的过去时间中,一般过去时可以成立。这是关键词判断容易失效的地方:同样的持续时间短语,在不同语境中承担的任务并不相同。
还要注意有些瞬间动作不能不加处理地与持续时间连接。若想表达“已经买了这本书两周”,需要检查是否应改用“拥有这本书”的持续状态,而不是机械写成 have bought this book for two weeks。应按实际要表达的含义选择have had等结构,并说明它表达的是持有状态。

练习一:对话已经说明“上个星期日去了博物馆”,补全 We ___ the museum last Sunday. 可以填visited,因为句子交代一个有明确过去时间的事件。不能只因参观属于人生经历就忽略last Sunday,直接改成have visited。
练习二:情境为“我现在进不了房间,因为钥匙不见了”,补全 I ___ my key, so I cannot get into the room now. 可以用have lost,将过去动作与当前结果联系起来。如果另一段叙述明确在回忆昨天发生的事情,也可能改用一般过去时并重新组织上下文;本题的选择依据是已经给出的当前情境。
练习三:说话者从两个月前开始一直住在这里,补全 I ___ here for two months. 使用have lived,表示持续到现在的状态。若题目明确去年住了两个月、如今已经搬离,则应改成过去时表达。练习的答案应与情境一起检查,不能只留下一个孤立词组。
先在草稿旁画出“过去某时”和“现在”两个位置,标记自己说的是过去的一次事件、截至现在的经历,还是持续到现在的状态。确认意思后,再检查主语对应have还是has、动词过去式与过去分词是否相同,以及句子中是否混入了与表达重点冲突的时间状语。
例如lost的过去式和过去分词拼写相同,不能只看一个lost就断定时态,要看它前面是否有助动词及完整结构。改错时写清“为什么改”,比只抄一次正确形式更有用。用自己的真实日常经历重新写两组三句对话,分别说明过去发生了什么、现在有什么联系,并把不确定的地方回到完整语境中核对。