3. 现在完成时注意事项
(1) 延续性动词与非延续性动词的用法
现在完成时表示动作从过去某个时候开始一直持续到现在,与一段时间连用时应注意句中的谓语动词应是延续性动词,非延续性动词不能和一段时间连用,不过,在否定句中非延续性动词可与一段时间连用。
如:误:I've left this school for three years.
正:I've been away from this school for three years.
我离开这所学校已经三年了。
ps:常见的非延续性动词转化为延续性动词
come/go —— be here/there     arrive/reach—— be        begin/start——  be on        borrow——keep
buy——have     close——be closed         die——be dead        get up——be up       join——be in
leave——be away from        lose——not have         open——be open      put on——wear
finish——be over        fall asleep——be asleep

(2) 现在完成时与一般过去时的区别
现在完成时与一般过去时都表示在过去发生的动作。但现在完成时强调这一动作与现在的关系,如动作对现在产生的影响、结果等;而一般过去时则只表示过去的事实,不表示和现在的关系。所以,一些表示过去时间的状语只能与一般过去时连用,而不能与现在完成时连用,如果句中有ago, last等表示过去时间的词或用when对过去的动作发生的时间进行提问,则不能用现在完成时。如:

I saw the film last week. (只说明上周看过电影,不涉及现在)(I have seen the film. (我现在已经了解这部电影的内容了))
He lived here in 1972. (不涉及他现在是否住在这儿)(He has lived here since 1972. (现在还住在这里))
I bought a red car two weeks ago. (只叙述过去发生的事实,与现在无关)(I have bought a red car. (既叙述了过去发生的动作,又强调了与现在的关系))
(3) have been to, have gone to和have been in三种结构的区别
have been to表示“过去曾经去过某地”,说话时已从该地回来或已从该地去了其他地方,总之现在已不在该地;have gone to则表示“已去了某地”,说话时不在说话地点,或在去该地的途中,或已到了该地,总之现在还未回来。have been in表示“已在某地(待了多久)”,若该地为小地方,则in须用at代替,当后面跟地点副词时只用have been,其后不可用任何介词。如:
I have been to Beijing twice. 我曾去过北京两次。
Jim has gone to London with this family. 吉姆已和他的家人去了伦敦。
The Greens have been in China for two years. 格林一家在中国已两年了。
You have never been there before, have you? 你以前从未去过那儿,是吗?