有时现在完成时和现在完成进行时表达的意思一致。
例如:
She has worked on painting for six years. 她画画画了6年了。(还会继续)
She has been working on painting for six years. 她画画已经画了6年了。(还会继续)
这是怎么区分二者?谢谢!
从网友提问的题目以及问题的第一句话,我们假定网友其实是知道现在完成时和现在完成进行时的基本区别的,只是对二者都可以表示一种情况从过去持续到现在共持续了多久这种用法有些疑惑。
我对此的答复是:
1 既然网友已经认识到有些动词的现在完成时和现在完成进行时表示的意义一致,那就没有必要区分它们。阅读时按照同义表达来理解,写作时二者任选一个时态即可。
2 需要注意的是,现在完成时和现在完成进行时表示相同的意义,只有在和持续时间状语连用的情况下才有可能。如果没有持续时间状语,现在完成时和现在完成进行时表示的是完全不同的意义,因此必须注意到持续时间状语的使用。
3 英语动词很多,但只有极少数动词的现在完成时和现在完成进行时与持续时间状语连用时意义接近或相同,必须知道哪些动词可以,哪些动词不可以。常见的动词如下:expect, hope, learn, lie, live, look, rain, sleep, sit, snow, stand, stay, study, teach, wait, want, work等。比如write a letter的现在完成时和现在完成进行时就不可能表示相同的意义:
He has written the letter for 3 hours. 错误 (终结性动词的完成体不可以和持续时间状语连用)
He has been writing the letter for 3 hours. 正确
know him也是如此。
I have known him for ten years. 正确
I have been knowing him for ten years. 错误 (静态动词不能用于进行体,也不能用于完成进行体)
因此,少数动词的现在完成时和现在完成进行时可以表示相同的意义,仅仅是特例,需要记忆这些少数动词,千万不可误以为这是二个时态的共性。
4 即使可以可以用这二个时态表示相同的意义,但对此,英语为母语着对此也有不同看法。根据夸克的一项调查,He has lived here for 30 years. 和 He has been living here for 30 years. 这二个句子,差不多有一半人认为二个句子的意思没有区别。有一半人认为二者有细微区别。即认为现在完成进行时表示临时居住在某处,故for 30 years这个时间状语表示的时间过长。我个人认为,作为英语学习者,我们可以忽略这个细微的差别。但一定要注意哪些动词才可以用这二种时态表示相似的意义,以及注意必须有持续时间状语。
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!
现在完成进行时与现在完成时之比较:
(1)现在完成时着重时间的经过,现在完成进行时强调动作的持续性质。
I have waited for two hours. 我等了两个小时。
I have been waiting for two hours. 我等了两个小时。--- 等得好辛苦
(2) 现在完成时着重“事情”已完成,须把作为宾语的“事情”明白指出,现在完成
进行时则无此顾虑。
I have read "Tom Sawyer". 我读过《汤姆.索亚历险记》。
I have been reading. 我一直都在读书。 ———没有出去
(以上摘自《刘毅英语语法宝典》p.349)
英语语法网上陈根花老师的一篇文章可供你参考:
http://www.yygrammar.com/Article/200805/329.html
五、现在完成进行时与现在完成时的区别:
1. 现在完成时强调动作的完成,而现在完成进行时强调动作的延续,因此,表示动作的完成,只能用现在完成时,而不能用现在完成进行时。如:
He has changed his idea. 他改变了想法。
2. 在表示动作的延续时,虽然既可用现在完成时,也可用现在完成进行时,但现在完成进行时强调动作的进行。因此在需要明确表示动作还要持续下去时,应用现在完成进行时。如:
We have been studying here for two years. 我们在这儿已经学习了两年了。
3. 在许多情况下,现在完成时表示动作已经完成,而现在完成进行时却并非如此。如:
He has cleaned the window. 他把窗户擦干净了。(动作已完成)
He has been cleaning the window. 他一直在擦窗户。(动作不一定完成)
4. 有些静态动词只能用于现在完成时,一般不能用于现在完成进行时。如:
I’ve known him for many years. 我认识他有许多年了。
The war has lasted for a long time. 这场战争持续了很长时间。
5. 有少数动词(如live, work, teach, study等)用两种时态都可以,意思差别不大。如:
I’ve lived [been living] here for 30 years. 我在这儿住了30年了。
How long have you worked [been working] here? 你在这里工作多久了?
6. 现在完成时与现在完成进行时的相通性:在表达一个从过去开始而现在仍在继续或刚刚结束的动作时,某些动词既可以用现在完成时,也可以用现在完成进行时,如expect, hope, learn, lie, live, look, rain, sleep, sit, snow, stand, stay, study, teach, wait, want, work等。如:
你学习英语多久了?
正:How long have yon learnt English?
正:How long have you been learning English?
他已经睡了十个小时了。
正:He has slept for ten hours.
正:He has been sleeping for ten hours.
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!