LiramiLirami

现在完成时(have/has + 过去分词)

过去的动作和现在有联系;常和 ever、never、just、already、yet、for、since 连用。

例句

  • I have lived here for 5 years.我在这儿住了 5 年了。
  • She has just left.她刚走。
  • Have you ever been to London?你去过伦敦吗?

讲解

学完这一课,你能

  • 说自己做过、没做过什么(经历)
  • 说一件事从过去持续到现在有多久了
  • 说“刚刚”“已经”“还没”
  • 分清现在完成时和一般过去时

构成

have / has + 过去分词

I have eaten.

我吃过了。(缩写 I've eaten)

She has gone.

她走了。(缩写 She's gone)

否定句:haven't / hasn't + 过去分词

一般疑问句:把 have / has 提到主语前面

规则动词的过去分词和过去式一样,加 -ed:worked, played, studied

常用的不规则过去分词:
be → beengo → gonedo → done
have → hadsee → seentake → taken
give → givenmake → madeget → got(美式也用 gotten)
write → writteneat → eatendrink → drunk
come → comebegin → begunrun → run
find → foundknow → knownthink → thought

经历

ever 和 never

说从过去到现在做过或没做过的事,不说具体什么时候:

I have visited Japan.

我去过日本。

She has never tried sushi.

她从没吃过寿司。

Have you ever been to London?

你去过伦敦吗?

have been to 和 have gone to 不一样:
He has been to Paris.

他去过巴黎。(已经回来了)

He has gone to Paris.

他去巴黎了。(人现在在那边或者在路上)

持续

for 和 since

从过去开始、一直持续到现在的事:

She has lived here for ten years.

她在这儿住了十年了。(现在还住在这儿)

I've worked here since 2020.

我从 2020 年起就在这儿工作。

for + 一段时间:for five years, for two hours

since + 起点:since 2020, since Monday, since I was a child

How long have you lived here?

你在这儿住多久了?

just、already、yet

刚刚、已经、还没

I have just finished.

我刚做完。

She has already left.

她已经走了。

Have you finished yet?

你做完了吗?

I haven't eaten yet.

我还没吃饭。

just、already 放在 have 和过去分词之间;yet 放在句末,用在否定句和疑问句。

现在完成时还能说过去的动作留下的结果:
I have lost my keys.

我把钥匙弄丢了。(现在还找不到)

和一般过去时对比

有没有具体的过去时间

说清楚了过去什么时候(yesterday, last week, in 2018, two days ago),用一般过去时:

I went to Japan in 2018.

我 2018 年去了日本。

不说什么时候,强调和现在的关系,用现在完成时:
I have been to Japan.

我去过日本。

用 when 提问也用一般过去时:
When did you arrive?

你什么时候到的?

today、this week、this month、this year 要看这段时间过完了没有。

还没过完,比如今天还没过去、这个星期还没过去,说到现在为止的情况用现在完成时:
I haven't seen her today.

我今天还没见到她。

We've had a lot of rain this week.

这个星期雨下得很多。

She has called me three times this month.

这个月她给我打了三次电话。

这段时间已经过去了,就用一般过去时。比如现在已经是下午,上午已经过完了:
I saw her this morning.

我今天上午见到她了。

常见错误

过去分词和过去式混用

I have ate.I have eaten.

have 后面用过去分词,不用过去式。

She has went home.She has gone home.
I have been there yesterday.I went there yesterday.

有 yesterday 这类具体的过去时间,用一般过去时。

I live here since 2020.I have lived here since 2020.

“从……到现在”要用现在完成时。

I have lived here since five years.I have lived here for five years.

一段时间用 for,起点用 since。

He has died for two years.He died two years ago.

die 是一下子完成的动作,不能和 for 连用;也可以说 He has been dead for two years.

练习要点

  1. 1. 现在完成时 · 经历(ever / never)

    用现在完成时说到现在为止做过或没做过的事,常和 ever、never 连用。

    • I have been to Japan.我去过日本。
    • She has never tried sushi.她从没吃过寿司。
  2. 2. 现在完成时 · for / since

    for + 一段时间(for 5 years),since + 起点(since 2020),表示从过去一直持续到现在。

    • I've lived here for 10 years.我在这儿住了 10 年了。
    • She has worked here since 2018.她从 2018 年起就在这里工作。
  3. 3. 现在完成时 · just / already / yet

    just 表示刚刚,already 表示已经;yet 用在否定句和疑问句,表示“还没”“已经……了吗”。

    • I've just arrived.我刚到。
    • Have you eaten yet?你吃过饭了吗?
  4. 4. 现在完成时 · 时间还没过完(today / this week)

    today、this week 这段时间还没结束,说到现在为止的情况用现在完成时;今天的事已经说完了,用一般过去时也可以。

    • I haven't seen her today.我今天还没见到她。
    • We've had a lot of rain this week.这个星期雨下得很多。

练到脱口而出

围绕这 4 个要点的小练习,每答一题立刻批改。免费开始。