[1]现在完成时 have/has + 过分

现在完成时是英语中用于连接“过去动作”与“现在状态”的时态,核心功能是强调过去发生的动作对现在造成的影响、结果,或动作从过去持续到现在不强调动作发生的具体时间(若需明确时间,需用一般过去时)。

现在完成时由“have/has + 过去分词 ”构成,人称和数的变化仅体现在助动词上:

第一人称(I/we)、第二人称(you)、第三人称复数(they/students等):用 have + 过去分词

第三人称单数(he/she/it/Tom等):用 has + 过去分词

注意:动词过去分词的构成分规则变化和不规则变化:

规则变化:在动词原形后加-ed(如work→worked,play→played);

不规则变化:需特殊记忆(如eat→eaten,see→seen,go→gone)。

一、强调“过去动作对现在的影响/结果”

动作发生在过去(具体时间不明确或无需提及),但该动作直接导致了现在的某种状态或结果,重点在“现在的影响”而非“过去的动作本身”。

常见标志词:already(已经,多用于肯定句)、yet(还,多用于否定句/疑问句,位于句末)、just(刚刚)、ever(曾经)、never(从未)、recently(最近)、lately(最近)。

1. I have finished my homework, so I can watch TV now.

(我已经做完作业了,所以现在可以看电视。过去“做作业”的动作,导致现在“能看电视”的结果)

2. She has just called her mother, so you don’t need to call again.

(她刚刚给妈妈打过电话了,所以你不用再打了。过去“打电话”的动作,导致现在“无需再打”的结果)

3. Have you ever been to Paris? It’s a very beautiful city.

(你曾经去过巴黎吗?那是一座非常美丽的城市。询问过去是否有“去巴黎”的经历,与现在的话题相关)

4. He hasn’t eaten breakfast yet, so he is very hungry now.

(他还没吃早餐,所以现在很饿。过去“没吃早餐”的动作,导致现在“饿”的结果,yet用于否定句末)

5. We have already visited that museum twice, so we don’t want to go there again.

(我们已经去过那家博物馆两次了,所以不想再去了。过去“参观”的经历,导致现在“不想再去”的态度,already用于肯定句)

6. My sister has never tried sushi before. Let’s take her to a Japanese restaurant.

(我妹妹以前从没吃过寿司。我们带她去一家日式餐厅吧。过去“没吃过”的经历,导致现在“提议去吃”的动作)

7. The rain has stopped recently, so the ground is still a little wet.

(最近雨停了,所以地面还是有点湿。过去“雨停”的动作,导致现在“地面湿”的状态,recently表“最近”)

8. Has Tom finished reading the book I lent him? I need it back tomorrow.

(汤姆把我借他的书读完了吗?我明天需要要回来。询问过去“读书”的动作是否完成,与现在“需要还书”相关)

9. They have bought a new car. Now they can drive to work every day.

(他们买了一辆新车。现在他们可以每天开车上班了。过去“买车”的动作,导致现在“能开车上班”的结果)

10. I have lost my keys. I can’t get into my house now.

(我把钥匙弄丢了。现在我进不了家门了。过去“丢钥匙”的动作,导致现在“进不了门”的结果)

二、强调“动作从过去持续到现在”

动作从过去某个时间点开始,一直持续到现在(可能还会继续持续下去),重点在“动作的持续性”。

常见标志词:for(后接时间段,如for 3 years“持续3年”)、since(后接时间点,如since 2020“自从2020年以来”、since I was a child“自从我小时候以来”)、so far(到目前为止)、up to now(直到现在)、in the past 5 years(在过去的5年里)。

1. He has lived in Beijing for 10 years. He knows the city very well.

(他已经在北京住了10年了。他非常了解这座城市。“住”的动作从10年前开始,持续到现在,for+时间段)

2. We have studied English since we were in primary school.

(我们从小学起就开始学英语了。“学英语”的动作从小学开始,持续到现在,since+时间点)

3. The company has developed new products so far this year.

(今年到目前为止,这家公司已经研发了新产品。“研发”的动作从年初开始,持续到现在,so far表“到目前为止”)

4. She has worked as a teacher since 2015. She loves her job.

(她从2015年起就当老师了。她热爱自己的工作。“当老师”的动作从2015年开始,持续到现在,since+年份)

5. I have known my best friend for over 15 years. We grew up together.

(我认识我最好的朋友已经超过15年了。我们一起长大的。“认识”的动作从15年前开始,持续到现在,for+时间段)

6. They have traveled to many countries in the past 3 years.

(在过去的3年里,他们已经去很多国家旅行过了。“旅行”的动作从3年前开始,持续到现在,in the past 3 years表时间段)

7. The old man has kept this photo since his wife passed away.

(这位老人自从妻子去世后就一直保存着这张照片。“保存”的动作从妻子去世时开始,持续到现在,since+从句)

8. Our team has won three games up to now this season.

(这个赛季到目前为止,我们队已经赢了3场比赛了。“赢比赛”的动作从赛季开始,持续到现在,up to now表“直到现在”)

9. My parents have planted many trees in their garden since they moved here.

(我父母自从搬到这里后,就在花园里种了很多树。“种树”的动作从搬家时开始,持续到现在,since+时间点)

10. The movie has been on for 20 minutes. We can’t miss the beginning.

(电影已经开始20分钟了。我们不能错过开头。“上映”的动作从20分钟前开始,持续到现在,for+时间段,be on是延续性动词短语)

三、现在完成时的三大高频易错点

1. 不可与“具体过去时间”连用

现在完成时强调“过去与现在的关联”,若出现明确的过去时间(如yesterday“昨天”、last week“上周”、in 2019“在2019年”、at 3 p.m. yesterday“昨天下午3点”),需用一般过去时,而非现在完成时。

He has visited his grandparents last weekend.(错误,last weekend是具体过去时间)

He visited his grandparents last weekend.(正确,用一般过去时)

2. 短暂性动词与延续性动词的区别

表示“持续”的用法(用法二)中,不可用短暂性动词(动作瞬间完成,无法持续,如die“死亡”、buy“买”、join“加入”、leave“离开”),需替换为对应的延续性动词或短语:

die → be dead(He has been dead for 5 years. 他已经去世5年了。)

buy → have(I have had this book for 2 months. 这本书我买了2个月了。)

join → be in(She has been in the club since 2022. 她从2022年起就加入这个俱乐部了。)

3. “have been to”与“have gone to”的区别

have been to:表示“曾经去过某地,现在已经回来”(强调“经历”),可与次数(twice/three times)或ever/never连用;

I have been to Shanghai twice.(我去过上海两次,现在不在上海)

have gone to:表示“去了某地,现在还在那里(没回来)”(强调“不在说话现场”),主语通常是第三人称;

Tom has gone to Shanghai.(汤姆去上海了,现在还在上海)

英语基础