[1]现在完成进行时 have/has been+现分

现在完成进行时是英语中表示“动作状态”的重要时态,核心功能是强调从过去某个时间点开始、持续到现在,且仍在进行(或刚结束,留下明显结果/影响)的动作。它融合了“完成时”的“时间跨度(过去→现在)”和“进行时”的“动作持续性/未完成感”,语义上更侧重“动作的持续过程”而非“结果”。

一、现在完成进行时的核心构成

1. 基本结构:主语 + have/has been + 动词现在分词(V-ing)

第一人称(I/we)、第二人称(you)、第三人称复数(they):用 have been + V-ing;

第三人称单数(he/she/it):用 has been + V-ing。

否定式:在have/has后加not,即 have not been + V-ing(缩写为haven’t been)、has not been + V-ing(缩写为hasn’t been);

疑问式:将have/has提前至主语前,即 Have/Has + 主语 + been + V-ing?

2. 现在完成进行时常用“时间标志词”提示动作的持续范围:

表“从过去持续到现在”since + 过去时间点(如since 2020, since last week, since I was a child);

表“持续时长”for + 时间段(如for 3 hours, for 5 years, for a long time);

表“最近一直在做”:lately, recently, these days, all morning/afternoon/week等。

二、现在完成进行时的核心用法

现在完成进行时的语义核心是“持续过程”,主要用于以下3种场景,需结合语境区分:

场景1:动作从过去开始,持续到现在,且仍在进行中

强调动作未结束,当前仍在持续,常搭配“for + 时间段”“since + 过去时间点”或“these days”等标志词,回答“动作已经持续了多久”。

I have been studying English for 2 hours, and I still need to finish my homework.

(我已经学了2小时英语了,而且我还需要完成作业。“学英语”从2小时前开始,现在仍在进行)

She has been working on this project since last Monday—she’s really busy these days.

(她从上周一开始就一直在做这个项目,最近真的很忙。“做项目”从上周一开始,现在仍在进行)

They have been building that new shopping mall for over a year, and it’s almost finished.

(他们建那座新商场已经一年多了,而且快完工了。“建商场”持续一年多,现在仍在进行,接近尾声)

He has been practicing the piano since he was 5 years old—now he plays very well.

(他从5岁起就一直在练钢琴,现在弹得非常好。“练钢琴”从5岁开始,持续到现在,仍在坚持)

We have been waiting for the bus for 40 minutes. Do you think it’s delayed?

(我们已经等了40分钟公交车了,你觉得它是不是晚点了?“等公交车”持续40分钟,现在仍在等)

My mom has been cooking in the kitchen since 4 p.m. The dinner should be ready soon.

(我妈妈从下午4点起就一直在厨房做饭,晚饭应该快好了。“做饭”从4点开始,现在仍在进行)

The students have been preparing for the final exam these days—they stay up late every night.

(学生们最近一直在准备期末考试,他们每天晚上都熬夜。“准备考试”持续到现在,仍在进行)

It has been raining since early morning. I hope it stops before we go out.

(从清晨开始就一直在下雨,我希望我们出门前能停。“下雨”从清晨开始,现在仍在下)

He has been learning to drive for 3 months, but he still hasn’t passed the test.

(他学开车已经3个月了,但还没通过考试。“学开车”持续3个月,现在仍在学)

We have been planting trees in the park all morning. Our backs are so tired now.

(我们整个上午都在公园里种树,现在背都酸了。“种树”从上午开始,现在仍在进行)

场景2:动作从过去开始,持续到现在,刚结束不久,但留下明显结果/影响

动作虽已停止,但持续过程带来的“结果”(如疲劳、成果、状态)仍在当下体现,此时需通过语境判断“动作刚结束”,而非“仍在进行”。

My hands are dirty because I have been gardening in the backyard.

(我的手很脏,因为我刚才一直在后院种菜。“种菜”刚结束,但“手脏”的结果还在)

She looks tired. She has been working too hard recently.

(她看起来很累,最近工作太辛苦了。“努力工作”可能刚停下,但“疲劳”的状态还在)

The ground is wet—it has been raining.

(地面是湿的,刚才一直在下雨。“下雨”刚结束,但“地面湿”的结果还在)

I’m so thirsty! I have been running for 30 minutes.

(我太渴了!我刚才跑了30分钟步。“跑步”刚结束,但“口渴”的结果还在)

He can’t speak clearly—he has been coughing a lot this morning.

(他说话不清楚,今天早上一直咳嗽。“咳嗽”可能刚停下,但“说话不清”的影响还在)

The kitchen smells like bread—my grandma has been baking.

(厨房飘着面包香,奶奶刚才一直在烤面包。“烤面包”刚结束,但“香味”的结果还在)

My eyes hurt because I have been staring at the computer screen all afternoon.

(我的眼睛疼,因为整个下午都在盯着电脑屏幕。“盯屏幕”刚结束,但“眼睛疼”的结果还在)

They are all sweating—they have been playing basketball.

(他们都在出汗,刚才一直在打篮球。“打篮球”刚结束,但“出汗”的状态还在)

The book is almost finished—I have been reading it every night.

(这本书快看完了,我每晚都在看。“看书”可能刚停下,但“快看完”的成果还在)

His voice is hoarse. He has been singing at the party.

(他的声音沙哑了,刚才在派对上一直在唱歌。“唱歌”刚结束,但“声音沙哑”的影响还在)

场景3:强调“动作的反复性”——过去到现在多次发生,且可能继续

表示从过去到现在“反复出现的动作”,而非“持续不间断的动作”,常搭配“lately”“recently”“over and over again”等词,突出“频繁发生”的特点。

She has been calling me lately, but I’ve been too busy to answer.

(她最近一直给我打电话,但我太忙了没接。“打电话”是过去到现在反复发生的动作)

He has been making the same mistake over and over again—we need to tell him how to fix it.

(他一直在犯同样的错误,我们得告诉他怎么改。“犯错误”是反复发生的动作)

We have been trying to contact her recently, but her phone is always off.

(我们最近一直在试着联系她,但她的电话总是关机。“联系”是反复发生的动作)

The child has been asking for a new toy every time we go to the supermarket.

(每次去超市,这个孩子都一直要新玩具。“要玩具”是过去到现在每次都发生的动作)

He has been complaining about his job lately—maybe he wants to quit.

(他最近一直在抱怨工作,可能想辞职了。“抱怨”是过去到现在反复发生的动作)

They have been holding meetings every Friday to discuss the project progress.

(他们每周五都开会讨论项目进展。“开会”是过去到现在定期反复发生的动作)

She has been practicing speaking French with her pen pal recently—her French is getting better.

(她最近一直和笔友练法语口语,法语进步了。“练法语”是反复发生的动作)

The dog has been barking at the neighbor’s cat every morning this week.

(这只狗这周每天早上都对着邻居家的猫叫。“叫”是过去到现在每天反复发生的动作)

He has been forgetting his keys lately—maybe he should put them by the door.

(他最近老忘带钥匙,或许应该把钥匙放在门边。“忘带钥匙”是反复发生的动作)

We have been visiting our grandparents every weekend since they moved to the countryside.

(自从祖父母搬到乡下,我们每个周末都去看他们。“看望”是过去到现在定期反复发生的动作)

三、现在完成进行时与现在完成时的核心区别(避坑关键)

很多人会混淆“现在完成进行时(have/has been doing)”和“现在完成时(have/has done)”,二者的本质区别在于语义侧重和动作状态:

1. 语义侧重不同:

现在完成进行时:侧重“动作的持续过程”(how long),不管结果是否完成;

现在完成时:侧重“动作的结果或完成状态”(how many/much),不强调过程。

I have been reading this book.(我一直在读这本书。→ 强调“读”的过程,可能还没读完)

I have read this book.(我读过这本书。→ 强调“读完”的结果,过程不重要)

2. 动作状态不同:

现在完成进行时:动作多为“持续性动词”(如study, work, rain),不可用于“短暂性动词”(如die, marry, finish,这类动词无法持续);

现在完成时:可用于“持续性动词”(表持续结果)或“短暂性动词”(表完成结果)。

正确:He has been living here for 5 years.(live是持续性动词,可用于进行时)

错误:He has been dying for 5 years.(die是短暂性动词,无法持续,需改为现在完成时:He has been dead for 5 years.)

英语基础