《小王子》中的一句英文语法,麻烦解释一下

why have you just put out the lamp? 译为 你为什么刚刚要熄灯呢?
这里为什么要用have,还不是用did呢? 我知道是have是完成时,但是这里不适合用啊。

我谷歌了一下,发现外国人也有讨论完成时和过去式的用法区别。有很多种说法,一种是说话者不知道他关灯的确切时间,比如Why did you break up with your girlfriend last night? 是知道是昨晚发生的,而I have not seen you in a while! Where is your girlfriend? What? Why have you broken up with her? 则是不知道确切是什么时候分手的
二是说话者可能更重视关灯的后果,而不是发生在过去的"关灯"本身。
还有很多种说法,我就不列举了,他们的共同点是“depends on the contexts”, 有一些情景下两者不可互换,有时候则可以
这种语法在一般的语法书上应该是找不到类似的内容的,我好像知道一本叫剑桥高级英语语法的书是讲这类的语法。比如为什么说“Will you be starting working on the room tomorrow? I hope to use it for the meeting tomorrow.”而不是“Will you start working on the room tomorrow? I want to use it for the meeting tomorrow”因为will be doing更礼貌。这一类的语法
说来惭愧,我也没看完那本书,纯讲语法的书读起来还是挺闷的(捂脸)追问

感谢你严谨的回答,而且我思考下来解释的是正确滴。 而且那个girlfriend broken up的例子超吉尔吊,很容易理解了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-03
这句话必须用现在完成时态,里面的just是“只是,仅仅”,因为just是现在完成时的标志词。而just now是过去时的标志。此句中“你为什么(只是)关灯?” 说话人强调“关灯”这一动作。你所说的 “你为什么刚刚要熄灯呢?”不合适,希望对你有帮助追问

那么如果这里把just去掉,就可以用did了是吗? 如果是的话,问句的意思会变吗?

追答

此句不能去掉just,因为这个语境不适合用过去时态

如果任何一个句子为了组成某一时态,去掉某个词,那就失去了整个语境,失去了句子的平衡,也就单调了

第2个回答  2019-04-03
平时我们使用的语言和小说中语言表达方法还是会有一些偏差的。
这里使用现在完成时,里有just也不算错,如果是just now就错了。
小说里用is being impolite不礼貌,平常我们就不会用。
第3个回答  2019-04-03
Why have you just put out the lamp?
这句话必须用现在完成时态,里面的just是“只是,仅仅”,
不是过去时的时间状语,just now "刚才“才是过去时的时间状语。
另外,你翻译的 “你为什么刚刚要熄灯呢?”不对,不是“刚刚要”,而是
“你为什么(只是)关灯?” 说话人强调“关灯”这一动作。
第4个回答  2019-04-03
“Why have you just put out the lamp?” 是现在完成时,表示灯是刚才灭的,现在还没有打开,仍然保持着灭的状态。如果改为 “Why did you just put out the lamp?” 则是一般过去时,表示刚才灭过灯,现在可能又打开了。