现在完成时 Present Perfect Tense

掌握现在完成时,让你的英语表达更准确、更流利! 这个网站将帮助你轻松理解和运用现在完成时。

开始学习
现在完成时图解

什么是现在完成时?

现在完成时 (Present Perfect Tense) 表示一个过去发生并持续到现在的动作,或者过去发生的动作对现在造成的影响。

时间关系

连接过去和现在

过去

动作发生

现在

动作结果/影响

思考一下:

"I have eaten breakfast."

这句话告诉我们什么?

  • 吃早餐这个动作发生在过去
  • 现在我不饿了(结果)
  • 没有具体说明是什么时候吃的

现在完成时的构成

肯定句

结构:

主语 + have/has + 过去分词

例句:

  • I have finished my homework.
  • She has read that book.
  • They have visited Beijing.

第三人称单数用 has,其余用 have

否定句

结构:

主语 + have/has not + 过去分词

缩写形式:haven't/hasn't

例句:

  • I have not finished my homework.
  • She hasn't read that book.
  • They haven't visited Beijing.

在 have/has 后加 not 构成否定句

一般疑问句

结构:

Have/Has + 主语 + 过去分词 + ?

例句:

  • Have you finished your homework?
  • Has she read that book?
  • Have they visited Beijing?

将 have/has 提到句首构成疑问句

特殊疑问句

结构:

特殊疑问词 + have/has + 主语 + 过去分词 + ?

例句:

  • What have you done?
  • Where has she gone?
  • How long have they lived here?

特殊疑问词 + 一般疑问句结构

小练习:用 have/has + 动词的正确形式填空

1. I _______ (finish) my homework.

2. She _______ (not / eat) breakfast yet.

3. _______ you _______ (see) that movie?

现在完成时的用法

1

表示过去发生并持续到现在的动作

这种用法表示一个动作从过去开始,持续到现在,可能还会继续下去。

常用时间状语:

for + 时间段 since + 时间点 how long all my life recently

例句:

  • I have lived in this city for 10 years.
  • She has studied English since she was 5.
  • They have been married for 20 years.
2

表示过去发生的动作对现在造成的影响

这种用法强调过去的动作与现在的联系,即动作的结果或影响现在依然存在。

常用时间状语:

already yet just ever never

例句:

  • I have eaten breakfast, so I'm not hungry now.
  • She has lost her keys. She can't get into her house.
  • They have finished their work, so they can go home.
3

表示过去发生的动作,不确定具体时间

这种用法表示在过去某个不确定的时间发生的动作,说话时不关心动作发生的确切时间。

常用时间状语:

before once twice several times in the past few years

例句:

  • I have seen that movie before.
  • She has been to Paris twice.
  • They have visited China several times.
4

表示从过去到现在的一段时间内多次发生的动作

这种用法表示在一段时间内重复发生的动作,强调动作的次数或频率。

常用时间状语:

many times several times how many times in the past week this month

例句:

  • I have called him many times today.
  • She has written three letters this week.
  • They have won the game twice this year.

小练习:选择每个句子中现在完成时的用法

1. I have lived in this city for 10 years.

2. She has lost her keys. She can't get into her house.

3. I have seen that movie before.

现在完成时的时间状语

常用的时间状语

for + 时间段

表示动作持续了多长时间

例句:I have studied English for 5 years.

since + 时间点

表示动作从过去某个时间点开始

例句:She has lived here since 2010.

already, yet, just

表示动作发生的时间早晚或刚刚发生

例句:I have already finished my homework.

ever, never

表示动作发生的频率或是否发生过

例句:Have you ever been to Paris?

不能使用的时间状语

具体的过去时间点

yesterday, last week, two days ago, in 2010等

错误:I have seen him yesterday.

正确:I saw him yesterday.

为什么不能用?

现在完成时强调过去与现在的联系,而具体的过去时间状语将动作限定在过去,与现在没有联系。

小贴士

当使用具体的过去时间状语时,应该用一般过去时。

例如:I visited my grandparents last weekend.

小练习:选择正确的时间状语

1. I _______ (learn) English _______ 5 years.

2. She _______ (finish) her homework _______.

3. They _______ (visit) Beijing _______ last year.

现在完成时 vs 一般过去时

关键区别

方面 现在完成时 一般过去时
时间关系 连接过去和现在 只表示过去
时间状语 for, since, already, yet, just, ever, never等 yesterday, last week, in 2010, two days ago等
关注点 动作的结果或影响 动作本身
与现在的联系 有联系 无联系

现在完成时例句

1. I have lost my key.

(结果:我现在没有钥匙)

2. She has lived here for 10 years.

(她从过去开始住在这里,现在还住在这里)

3. Have you ever been to Paris?

(询问经历,与现在有关)

一般过去时例句

1. I lost my key yesterday.

(只说明过去发生的动作,不涉及现在)

2. She lived here for 10 years.

(她过去在这里住了10年,现在不住在这里了)

3. Did you go to Paris last year?

(询问过去特定时间的动作)

延续性动词与非延续性动词

现在完成时中,当与表示一段时间的状语连用时,需要使用延续性动词,而不能使用非延续性动词

非延续性动词(短暂性动词)

表示动作发生后立即结束,不能持续:

buy sell borrow lend begin end start stop come go arrive leave join die marry

延续性动词

表示动作可以持续一段时间:

have keep use study learn work teach live stay wait know like love be wear

转换规则:

当需要与表示一段时间的状语连用时,非延续性动词需要转换为对应的延续性动词:

非延续性动词 延续性动词
buy have
borrow keep
begin/start be on
end/finish be over
come/go/arrive be here/be there
leave be away
join be in/be a member of
die be dead
marry be married

错误用法

  • ❌ I have bought this book for 2 weeks.
  • ❌ She has borrowed my pen since Monday.
  • ❌ The film has begun for 10 minutes.
  • ❌ He has left here for 3 days.

正确用法

  • ✅ I have had this book for 2 weeks.
  • ✅ She has kept my pen since Monday.
  • ✅ The film has been on for 10 minutes.
  • ✅ He has been away from here for 3 days.

小游戏:动词转换配对

将左侧的非延续性动词与右侧对应的延续性动词配对:

buy
borrow
begin
leave
die
have
keep
be on
be away
be dead

综合练习

练习1:用括号内动词的适当形式填空

1. I _______ (see) that movie three times.

2. She _______ (not / eat) breakfast yet.

3. They _______ (live) in this house since 2005.

4. _______ you _______ (finish) your homework?

5. He _______ (go) to Beijing last month.

练习2:将下列句子改写为现在完成时

原句:

He started to learn English five years ago.

改写:

原句:

They bought this car in 2010.

改写:

原句:

The meeting began 10 minutes ago.

改写:

练习3:选择正确的时态(现在完成时或一般过去时)

1. A: _______ you _______ (see) Tom recently?
B: Yes, I _______ (see) him yesterday.

2. A: How long _______ you _______ (live) here?
B: I _______ (live) here for 5 years. I _______ (move) here in 2015.

3. A: _______ you ever _______ (be) to Paris?
B: Yes, I _______ (go) there last summer. I _______ (have) a great time.

语法总结

构成

  • 肯定句: 主语 + have/has + 过去分词
  • 否定句: 主语 + have/has not + 过去分词
  • 一般疑问句: Have/Has + 主语 + 过去分词?
  • 特殊疑问句: 特殊疑问词 + have/has + 主语 + 过去分词?

用法

  • 1. 过去发生并持续到现在的动作
  • 2. 过去发生的动作对现在造成的影响
  • 3. 过去发生的动作,不确定具体时间
  • 4. 从过去到现在的一段时间内多次发生的动作

时间状语

常用:

for + 时间段 since + 时间点 already yet just ever never

不能用:

yesterday last week two days ago in 2010

与一般过去时的区别

  • 现在完成时: 连接过去和现在,强调结果或影响
  • 一般过去时: 只表示过去,强调动作本身
  • 时间状语: 现在完成时不能使用具体的过去时间状语
  • 联系: 现在完成时与现在有联系,一般过去时没有

常见错误

1

使用具体的过去时间状语

错误:I have seen him yesterday.

正确:I saw him yesterday.

2

与for/since连用时使用非延续性动词

错误:He has left for 3 days.

正确:He has been away for 3 days.

3

混淆have/has的用法

错误:She have finished her homework.

正确:She has finished her homework.

4

过去分词形式错误

错误:I have eat breakfast.

正确:I have eaten breakfast.

学习建议

  • 多做对比练习,区分现在完成时和一般过去时
  • 记忆常见的非延续性动词及其对应的延续性动词
  • 注意时间状语的正确使用
  • 多阅读和听力练习,培养语感
  • 尝试用现在完成时描述自己的经历和感受