B1 · 时态与进行体
现在完成时还是一般过去时?
重要的是时间点,还是结果?
一目了然
- 记住这句
- 时间段结束了——一般过去时。时间段还开着——现在完成时。
- 什么时候用
何时用哪种形式 — 这些主题讲的不是某一种形式,而是怎样在两种形式之间作出选择。
- 构成
- I have seen我看过
- 标志词
- yesterday, last …, in 2019, ago, then → Simple Past
- ever, never, already, yet, so far, this week → Present Perfect
- 易错点
- 错误:I have been to Beijing last month.正确:I went to Beijing last month.
轮到你了
本主题共有 7 道练习。答案在浏览器里直接判断,不会离开你的设备。
构成形式
词干(规则) 词干(不规则) 时态标记 助动词
| 我看过 | I have seen |
| 你看过 | you have seen |
| 他、她、它看过 | he, she, it has seen |
| 我们看过 | we have seen |
| 你们看过,您看过 | you have seen |
| 他们看过 | they have seen |
| 我(那时)看见了 | I saw |
| 你(那时)看见了 | you saw |
| 他、她、它(那时)看见了 | he, she, it saw |
| 我们(那时)看见了 | we saw |
| 你们(那时)看见了,您(那时)看见了 | you saw |
| 他们(那时)看见了 | they saw |
| 尚未结束的时间段 | I have seen him twice this week. |
| 已经结束的时间段 | I saw him twice last week. |
| 现在的结果 | She has lost her passport. |
| 当时的事件 | She lost her passport in Rome. |
规则逐条讲
这个主题讲的形式提示要用这个形式的词
句子里有已经结束的时间,就不能用现在完成时。
The parcel arrived on Tuesday.包裹星期二到的。
先用现在完成时开个头,具体细节再用一般过去时讲。
I have been to Prague. I went there in spring.我去过布拉格。我是春天去的。
ago 永远要求一般过去时。
They left ten minutes ago.他们十分钟前走了。
美式英语中,just、already 和 yet 也常和一般过去时连用。
Did you eat yet? (AE) — Have you eaten yet? (BE)你吃过饭了吗?
例句
Have you finished the report? — Yes, I finished it last night.报告写完了吗?——写完了,我昨晚写完的。
She has written four books.她写过四本书。
She wrote her first book in 2012.她的第一本书是 2012 年写的。
I have not seen him today.我今天还没见到他。
I did not see him yesterday.我昨天没见到他。
再看 6 个例句
I have been to Rome. I went there in 2019.我去过罗马。我是 2019 年去的。
She has broken her arm — it is still in plaster.她把胳膊摔断了——现在还打着石膏。
Did you speak to him yesterday?你昨天跟他说话了吗?
We have not decided yet.我们还没决定。
He lived in Paris for two years and then moved.他在巴黎住了两年,后来搬走了。
The post has just arrived.邮件刚到。
中文母语者最容易踩的坑
注意
规则不是“离现在越近越用现在完成时”。三十年前的事,如果说的是经历,也用现在完成时(I have been to Japan);五分钟前的事,只要有一个已经结束的时间,就用一般过去时(He left five minutes ago)。中国学习者还有一个特有的陷阱:看到“过”就用现在完成时。“我上个月去过北京”有“上个月”,英语只能说 I went to Beijing last month。
详细讲解
阅读全文 · 约 1 分钟
对中国学习者来说,这是英语语法里最难的选择之一,原因很简单:中文根本不需要做这个选择。“我看了那部电影”“我看过那部电影”“我昨天看了那部电影”,动词“看”始终不变,“了”和“过”说的是动作的状态,而不是时间。英语却必须在两种时态之间二选一,而且它们表达的是两种不同的说法。
要问的问题永远是:这段时间结束了吗?yesterday、last week、in 2019、two hours ago——已经结束,用一般过去时。today、this week、so far、ever、never,或者句子里没有时间词——时间仍然开放,用现在完成时。
没有时间词时,还有第二个标准:说的是现在的状况,用现在完成时;说的是当时发生了什么,用一般过去时。He has broken his arm——他现在打着石膏。He broke his arm in 2019——那是当年的一段经历。特别注意:中文的“过”可以和明确的过去时间一起用(“我上个月去过北京”),英语的现在完成时不行。
这个主题你掌握得怎么样?
练习之后这里会自动填写。你也可以随时在这里自己修改。