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)