would think 和 would have thought 都属于虚拟语气结构,从意思上看,前者表示“会想到”,后者表示“(谁)会想到”。请老师具体谈谈它们俩的区别,谢谢!
张老师:
你问的可能是二者单独使用表虚拟的用法:
▲would think本身表虚拟时,意思为【会认为,想到】:
Anyone would think you were in love with the girl. 谁都会认为你是爱上了这个姑娘。
Anyone would think he owns the place, the way he talks. 听他这样谈话谁都会认为他是这里的老板。
▲would have thought本身也是虚拟语气,表示【谁会想到,或原本会以为】:
Who would have thought to see you here? 谁会想到在这里碰到你?
Who would have thought of such a thing? 谁会想到这样的事?
Who would have thought she'd end up dancing for a living? 谁会想到她最后落得靠跳舞谋生?
▲通过例句可知。前者具【肯定之意】,人人都会如此认为,其中的 anyone 可换为 everybody;而后者具【否定之意】,没有人会想到。Who一律可换成 nobody。
黎老师:
I should (或 would )think 意思是“我想”、“我估计”,而 should (或 would) have thought 则意为“我会认为”。例如:
I should think we'll be finished by the end of the week. 我估计到本周末我们会完成。
Is she only thirty-five? I would have thought she was much older. 她才35岁?我原以为她还不止呢!
Who would have thought 意思是“谁会想到 ......”。例如:
Who would have thought to see you here !谁会想到在这里遇见你!
(以上均为《薄冰英语惯用法词典》的原文 , p.1159)
罗老师:
你说的这种情况在您的另一个问题中有所体现,如果单纯的说would think,意义就很多了,一是我在另一回答中的表示将来的“可能性”,另外,would可以表示:对过去的可能性的推测;过去常常发生的事情;对一般现在时和将来时的虚拟;would还有“意愿”的含义等等。
would have thought可以表达对过去的虚拟。
所以说,最好是给出具体的例句进行区别。这样提问至少对于would + v.来说涉及太广。