现在完成时
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 / they | have | finished | the work. |
| he / she / it | has | finished | the work. |
否定式:主语 + have not / has not + 分词。缩略形式:haven’t、hasn’t。
| 主语 | haven’t/hasn’t | 分词 | |
|---|---|---|---|
| I / you / we / they | haven’t | seen | the film. |
| he / she / it | hasn’t | seen | the film. |
疑问式:Have/Has + 主语 + 分词?
| Have/Has | 主语 | 分词 | |
|---|---|---|---|
| Have | you | tried | it? |
| Has | she | called | back? |
简答: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。
不规则动词过去分词入门清单:
| 基础词 | 一般过去时 | 过去分词 |
|---|---|---|
| be | was/were | been |
| go | went | gone |
| see | saw | seen |
| do | did | done |
| make | made | made |
| have | had | had |
| take | took | taken |
| write | wrote | written |
| eat | ate | eaten |
| meet | met | met |
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 = 去过又回来了。想象一下这个人:他现在在不在?