英语词组辨析:have done VS have been doing
a. We have been planting trees all this week.
b. We have planted trees all this week.
上面a、b两个句子哪一个更符合习惯?为什么?
英语的现在完成时与现在完成进行时让不少童鞋困惑。小编在此,任它什么小鬼大神,帮你搞定。
要搞清两者异同,我们先来搞清它们各自的特征,再让它们相互PK,什么鬼都得现出原形。
一、现在完成时
现在完成时表示以下动作:
1. 说话时已经发生或完成的动作,强调动作结果依然可见或动作的影响依然存在。句中常可以有already, yet, just等副词。
例如:
a. I have already/just seen the film.(影响:我不想再看了。)
b. I have not yet seen the film. (结果:对其内容尚不了解。)
也可表示到说话时已重复多次或实现一定结果的动作:
c. I have already seen the film twice.
d. I have seen three films this week.
2. 发生于过去的动作,但发生的具体时间不明确。句中常有before、ever、never、once等副词。
例如:
a. I have been to that city once. (去过。但何时去的那个城市,记不清了,或不想明确。)
b. --- Have you ever been to that city?
--- Yes. I went there three years ago. (有确定的过去时间,就必须用一般过去时。)
3. 开始于过去,延续到现在的动作,或自过去某时起到现在经常重复的动作(有重复的次数或重复的结果)。常有since two years ago, for two years, over/in/during the last/past two years, so far, up to now等“段时间”状语。
例如:
a. I have worked /lived here for over 20 years. (持续不间断)
b. So far we have planted acres of trees. (重复结果)
c. I have been to that city many times. (重复次数)
二、现在完成进行时
现在完成进行时表示:开始于过去,延续到现在的动作,或自过去某时起到现在不断重复的动作(无重复次数或重复结果,这是与现在完成时的一个重大区别)。
a. I have been living /working here for over 20 years. (持续不间断)
b. We have been learning English since a very young age. (重复)
完成进行时本质上是进行时,所以,状态动词没有完成进行时。常见状态动词包括以下几类:
1. 认知类:know, realize, learn(获悉), see(明白), understand, recognize, 以及表“看法”的动词expect, believe, suppose, consider等。
2. 归属类:have, possess, own, owe, belong to, 等。
3. 好恶类:love, like, appreciate, prefer, hate, dislike, 以及表“愿望”的动词want, desire, hope 等。
4. 连系动词中的“感官类”与“保持类”:
感官类:look, sound, smell, taste, feel, seem
保持类:keep, remain, stay, hold
5. 功能特性类:weigh, measure, sell, write, bend, tear, stand, 等。
三、have done VS have been doing
由上述可知,下列情况下不能用完成进行时:
1. 句中有already, yet, just, before, ever, never, once等副词;
2. 句中有表示“次数”或“结果”的词语;
3. 状态动词;
只有一种情况两者可互换:开始于过去、不间断持续到现在的动作。
现在回到开头的两个句子。a句更符合习惯,因为完成进行时表示一定时段内重复的动作,完成式表示重复动作时后面要跟重复的次数或重复的结果。
简言之, have done大多强调动作的“完成”与“结果”;have been doing仅仅侧重动作的“持续”或“重复”。
本文为原创文章,版权归作者所有,未经授权不得转载!
作者:苏北(公众号 苏北教育)