现在完成时

A2 Present perfect simple 25 / 50

概要

现在完成时把过去和现在联系起来:have/has + 过去分词。它用于表示生活经历、最近发生的事,以及从过去开始、现在仍然成立的事情。不能和表示已结束时间的词一起使用,比如 yesterday 或 last week。

规则

用 have / has + 过去分词(动词的“第三形式”)构成现在完成时。

  • 规则动词的过去分词以 -ed 结尾,和一般过去时相同(work -> worked,live -> lived)。
  • 不规则动词必须记住它们的“第三形式”(go -> went -> gone,see -> saw -> seen)。

现在完成时主要有四种用法:

用法含义例句
生活经历某件事在你人生中的某个时候发生过(或没有发生过)——具体时间不重要I have visited Rome. / I have never tried sushi.
最近发生的动作一个感觉离现在很近的已完成动作——常常和 just、already、yet 连用She has just left.
直到现在从过去开始,一直持续到现在——和 for、since 连用We have known each other for years.
过去的动作、现在仍有的结果某件事发生了,现在仍能看到它的结果I have lost my keys.(= 我现在没有它们了)

与一般过去时的关键区别:如果句子里有表示已结束时间的词(yesterday, last week, in 2019, two days ago, when I was a child),就要用一般过去时,而不是现在完成时。

错误正确
I have seen him yesterday.I saw him yesterday.
She has called me last week.She called me last week.

在 since 后面,用一般过去时是正常的:起点可以是一整个从句,说明这段时间开始时发生的事件,这个从句用一般过去时,而主句的动词仍然是现在完成时——We have shared an office since the team moved upstairs. 这个一般过去时只是标出这段时间的起点,并不会把主句的动词也变成一般过去时。

注意(美式英语与英式英语):美式英语常常在英式英语用现在完成时的地方用一般过去时,例如 Did you eat yet?(美式)与 Have you eaten yet?(英式)。两种说法都能被理解。

形式与结构

肯定式:主语 + have/has + 过去分词

主语have/has分词
I / you / we / theyhavefinishedthe work.
he / she / ithasfinishedthe work.

否定式:主语 + have not / has not + 分词。缩略形式:haven’t、hasn’t。

主语haven’t/hasn’t分词
I / you / we / theyhaven’tseenthe film.
he / she / ithasn’tseenthe film.

疑问式:Have/Has + 主语 + 分词?

Have/Has主语分词
Haveyoutriedit?
Hasshecalledback?

简答:Yes, I have. / No, I haven’t. - Yes, she has. / No, she hasn’t.

have/has 在肯定式中的缩略形式:I’ve、you’ve、we’ve、they’ve、he’s、she’s、it’s。

不规则动词过去分词入门清单:

基础词一般过去时过去分词
bewas/werebeen
gowentgone
seesawseen
dodiddone
makemademade
havehadhad
taketooktaken
writewrotewritten
eatateeaten
meetmetmet

been 与 gone:

句子含义
He has gone to the shop.他还没回来(他现在在商店)。
He has been to the shop.他去过又回来了。

例句

English说明
Have you ever been to Spain?生活经历;ever = 人生中任何时候。
I’ve never tried Thai food.没有发生过的生活经历。
She’s just finished her homework.Just = 很短时间之前。
Have you done it yet?Yet 用在疑问句中,询问一个预期中的动作是否发生。
He hasn’t called me back yet.Yet 用在否定句中 = 到现在还没有发生。
We’ve lived here for ten years.For + 一段时长;现在仍然成立。
They’ve known each other since 2010.Since + 一个起点;现在仍然成立。
I’ve lost my phone, so I can’t call you.一个过去的动作,有明显的现在结果。

常见错误

  • I have seen him yesterday. -> I saw him yesterday.——表示已结束时间的词需要用一般过去时。
  • She have finished. -> She has finished.——he/she/it 要搭配 has。
  • I have went to London. -> I have gone / been to London.——要用分词(gone/been),而不是一般过去时 went。
  • I live here for five years. -> I’ve lived here for five years.——表示“直到现在”要用现在完成时,不用一般现在时。
  • I’ve been there since two weeks. -> I’ve been there for two weeks.——for + 一段时长,since + 起点。

学习提示

  • 现在完成时的标志词:ever, never, just, already, yet, so far, for, since。
  • 一般过去时的标志词:yesterday, ago, last (week/year), in 2019, when…。看到其中任何一个就要换用一般过去时。
  • for 回答“how long?”这个问题(for two days);since 回答“from when?”这个问题(since Monday、since we moved in)。
  • gone = 还没回来;been = 去过又回来了。想象一下这个人:他现在在不在?