过去完成时表示某件事发生在另一个过去事件之前——它在时间轴上标记更早的那个动作。
- When I arrived at the party, Maria had already left. (她先离开,然后我才到)
- He had never seen snow before he moved to Canada.
- By the time we got there, the concert had already started.
句型始终相同:had + 动词的过去分词。had 从不变化——所有主语都用 had。
**快速公式:**主语 + had + 过去分词 → She had finished. They hadn't seen it. Had you ever been there?
如何构成过去完成时
Had 对所有主语都一样——这里没有 was / were 的区分。
| 主语 | had | 过去分词 | 例句 |
|---|---|---|---|
| I / you | had | worked | I had worked there for years. |
| he / she / it | had | gone | She had gone home. |
| we / they | had | seen | They had never seen it before. |
过去分词与现在完成时(have worked,have gone,have seen)中使用的形式相同。不规则动词的过去分词——gone、seen、written、spoken——就是不规则动词表中的第三栏。想查看常见不规则动词的三种形式(原形、过去式、过去分词),可以参考 Past simple: irregular verbs。
口语中,助动词 had 常在主语代词后缩写为 'd:She*'d** already left. We**'d** never met. I**'d** just arrived.* 在简短回答中,或需要强调时,要使用完整形式:"Had she left?" — "Yes, she had."
核心用法:标记更早的事件
当提到两个过去事件时,过去完成时标记先发生的那个。较晚的事件通常使用一般过去时。
- When the film started, we had already found our seats. (找到座位 → 电影开始)
- She called after I had left the office. (我离开 → 她打来电话)
- They were exhausted because they had worked all day. (工作在先 → 疲惫在后)
汉语常用"已经、之前、先……再……"或语序来表示先后,不靠动词变形;英语则常用过去完成时标记"更早发生的动作"。看到"到某个过去时间为止已经……"时,要想到 had + 过去分词,不要只用一般过去时。
常与过去完成时连用的时间连词
这些连词可以帮助说明两个过去事件之间的时间关系。含有过去完成时的从句通常表示较早的事件;另一个从句通常用一般过去时:
| 连接词 | 例句 |
|---|---|
| when | When I arrived, he had already eaten. |
| after | After she had locked the door, she left. |
| before | She had never cooked a meal before she left home. |
| by the time | By the time we got there, the concert had started. |
| as soon as | As soon as I had explained the plan, they agreed. |
after 和 before 本身已经表明顺序,因此两个一般过去时也是正确的:✅ After she locked the door, she left. 两种表达都对;过去完成时只是让顺序更明确。
与 already、just、never、still 和 yet 连用
这些副词与过去完成时搭配十分自然:
- I had already finished when you called.
- She had just left when he arrived.
- He had never tried sushi until that evening.
- They still hadn't arrived by midnight.
- The train hadn't left yet when we reached the platform.
语序:already 和 just 最常见的位置是 had + 副词 + 过去分词——✅ had already finished,✅ had just left(had finished already 也可以)。never:had + never + 过去分词——had never tried。否定句中的 still:still + hadn't + 过去分词——still hadn't arrived;较正式的说法是 had still not arrived。
与 for 和 since 连用
过去完成时还可以与 for 和 since 连用,表示某件事在过去某个时间点之前已经持续了多长时间:
- She had lived there for ten years before she moved.
- They had known each other since school.
否定
not 放在 had 和过去分词之间。缩略形式 hadn't 在日常口语中最常用:
- I hadn't met her before that day.
- They hadn't finished when the bell rang.
- She had not expected that reply.(更为强调)
疑问句
将 had 移至主语前面:
- Had you seen that film before?
- Had she left by the time you arrived?
- What had he said before you walked in?
简短回答:Yes, I had. / No, I hadn't.
过去完成时还是一般过去时——什么时候可以不用过去完成时?
当 after 或 before 等连接词已经表明顺序时,两个一般过去时同样自然且正确:
- ✅ After she locked the door, she left.
- ✅ After she had locked the door, she left.
过去完成时在叙事中途"回溯"时最为有用——就像闪回:
He sat down and thought about the morning. He had argued with his boss. He had spilled coffee on the report. Everything had gone wrong.
如果这里不用过去完成时,时间线就会不清楚。
常见错误
- ❌ When I arrived, she left already. → ✅ When I arrived, she had already left. (较早的事件需要用过去完成时)
- ❌ I had went to bed early. → ✅ I had gone to bed early. (需用过去分词,而非过去式)
- ❌ She had never saw the sea before. → ✅ She had never seen the sea before. (seen,不是 saw)
- ❌ They had finished the work yesterday.(独立句,没有后续事件)→ ✅ They finished the work yesterday. 如果有后续事件,过去完成时是可以的:I checked on Tuesday — they had finished the work the day before.
- ❌ After I had have dinner, I left. → ✅ After I had had dinner, I left.(或更自然地:After I had dinner, I left)
练习检测
过去完成时还是一般过去时?
- By the time the taxi ____ (arrive), we ____ already ____ (miss) the train.
- She ____ (feel) much better after she ____ (sleep) for a few hours.
- ____ you ____ (ever / visit) Paris before that trip?
- He ____ (turn) off the computer and ____ (leave) the office.
显示答案
- arrived(较晚事件 → 一般过去时)… had already missed(较早事件 → 过去完成时)
- felt(较晚)… had slept(较早)
- Had you ever visited(过去某时间点之前的经历 → 过去完成时)
- turned … left(均用一般过去时——简单的先后顺序,无需特别标记哪个在前)
重点总结
- 过去完成时 = had + 过去分词——与现在完成时使用相同的过去分词,但助动词是 had,而非 have / has。
- Had 从不变化:对所有主语都一样。
- 用于两个过去事件中较早的那个——在另一个事件发生时已经完成的动作。
- 常见搭配:when、after、before、by the time、already、just、never、still、yet。
- 与 for 和 since 连用,表示在过去某时间点之前某事已持续了多长时间。
- 有 after 和 before 引导时,先后顺序本身已经比较清楚——两个一般过去时同样正确,但过去完成时会让顺序更明确。
- 口语中,had 常缩写为 'd:I'd eaten,she'd gone,we'd never met。在简短回答中使用完整形式:Yes, I had.