如何解答 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘 AI 生成的内容
codists
V2EX    程序员

如何解答

  •  
  •  codists
    codists 2022-06-04 11:53:53 +08:00 2989 次点击
    这是一个创建于 1274 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一、缘由

    “如何提问”的文章很多,这里想谈一下“如何解答”这个问题。之所以写这篇文章内,源于我的两个提问:

    提问 1:求助,执行字节码指令时栈的具体变化是怎么样的?

    提问 2: Python array 文档里面的 machine values 具体指的是什么?

    看完提问 1 的解答,我感觉心情舒畅;看完提问 2 的解答,我感觉整个人心情都不好了。

    所以想借此谈谈一些个人观点,希望下次回答我的问题的大佬能先看下这篇文章。当然了,你我若无任何交集,那看不看这篇文章都无所谓。同时也是为了营造一个更好的中文提问与解答社区。

    二、tips

    下面具体谈谈“如何回答”。

    2.1 可以解决的问题

    如果知道怎么解决,那么直接提供解决方案,并尽可能提供参考资料。

    例如提问 1 里面的解答:

    6, 10 画错了。 两个都是要先出栈两次。只是 10 的 TOS1 如果支持 inplace ,等同于出栈一次。 

    这类解答是最让人感到舒服的 ,直接指出问题,并提供解决方案。如果再提供一些参考资料,那么可以说相当令人满意。

    2.2 不可以解决的问题

    对于无法解决的问题,那么最好提供具体的建议

    例如提问 1 里面的解答:

    我自己画出来的也不对,不过能确定你地址 6 、10 的地方画错了,6 的那里要出栈两个再写入( Binary operations remove the top of the stack (TOS) and the second top-most stack item (TOS1) from the stack. They perform the operation, and put the result back on the stack.),10 是 inplace 的操作,你 append 了。咱俩可以讨论一下 

    这类解答可以看出解答者也是真的去验证了。

    三、不好的解答

    看下提问 2 里面的解答:

    建议学一下 C 语言 /剩下的你该去学 C 语言了 / 所以楼上让你学 C 语言还真说对了 
    合着你知道”machine value“不是一个常见的用法?这本来就不算是一个专业术语,我们帮你推测验证它的具体含义,然后你说没有给出定义?要饭要的这么理直气壮的吗? “计算机科学与技术”专业毕业的人不知道内存表示和补码不是一码事?不会 C 语言? CSAPP 没看过?毕业挺好,下次不要毕业了。 
    我看合着大家回答没啥问题啊,但是整个就一网络喷子的作风,其实我还是比较赞同你说的 machine value 为内存表示了,不同机器 /大小端,不同平台表示也可能不同。 

    看到三个大佬“建议学 C 语言”之类的回答,我不能说有错,我只能说:私以为这样的回答和不回答貌似也没有多大差别。以及所谓的“要饭的”,“网络喷子”之类的回答就让人感到莫名其妙。

    对于提问 2 里面的谁对谁错的问题,本帖无意再讨论,里面很多人的回答都是“前面的人回答没有问题”如果你也要来重复这句话,那么就没有必要了,因为你偏离了解答问题的初衷解答问题的最终目的是为了让提问者明白,而不是解答者之间互相认同。

    三、总结

    之所以写这边文章,只是希望下次回答我的问题的大佬能先看下这篇文章,我不希望看到像提问 2 里面那样的回答。当然了,你我若无任何交集,那看不看这篇文章都无所谓。

    同时也是为了营造一个更好的中文提问与解答社区。

    13 条回复    2022-06-05 02:22:24 +08:00
    lscho
        1
    lscho  
       2022-06-04 12:01:07 +08:00   10
    那您有没有意识到是您在提问 2 中 #3 的回复过于不友善导致的呢?前两楼正儿八经的回答,您来个“听君一席话 如听一席话”、“请问你和一楼的大佬真的看懂问题了吗?”、“说话带点逻辑吧。ball ball 你们了!”

    问问题就摆正心态,可以带着质疑问题的态度回复,但是不能带着质疑回答问题者的态度回复。
    pcbl
        2
    pcbl  
       2022-06-04 12:05:02 +08:00 via Android
    只要对方的回答是有用的,他骂我一顿我都能接受。
    最受不了洋洋洒洒几百上千字都是废话的回答。
    jackyin
        3
    jackyin  
       2022-06-04 12:16:28 +08:00   5
    提问时,是自己来求答案的,自然要把问题写清楚,态度也要好,不然怎求的到答案?
    回答时,我想怎么答就怎么答,我甚至可以说说风凉话,阴阳怪气一下,反正我又不有求于人。除非你给钱,自然就多多的人认真回答了,因为求财啊。

    所以呢,面对所谓的不好的解答略过就行,无需在意,甚至面对你觉得不好的解答也要表达谢意,也许有人看到你的谦逊的态度,会给你更好的答案。如果你的态度是高高在上,不耻下问,谁愿意再给你更好的答案呢?
    shakaraka
        4
    shakaraka  
    PRO
       2022-06-04 12:28:47 +08:00
    如果回答者回复的不是你期望的答案,那么你忽视即可。
    jackyin
        5
    jackyin  
       2022-06-04 12:31:51 +08:00   4
    刚看了下链接,认真回答的人都要被你怼死了,一楼那大哥回答的那么认真还要被这样怼。
    我本以为人家只扔下一句“建议学一下 C 语言”,原来是人家给了详细答案,然后给的建议。
    难怪网上各种小作文,只要剪辑下内容,意思就完全变了。

    我看了下别人回答,都比较认真,并且也没带阴阳怪气的语气,你的回复尽是阴阳怪气,不断的用反问来怼。
    learningman
        6
    learningman  
       2022-06-04 12:33:12 +08:00   2
    回答你问题还要被阴阳,回复你就是欠了你的是吧

    t/854656?p=1#r_11698464
    t/854656?p=1#r_11698578
    F281M6Dh8DXpD1g2
        8
    F281M6Dh8DXpD1g2  
       2022-06-04 12:42:39 +08:00
    看了下回复楼主老阴阳师了。
    nailuoGG
        9
    nailuoGG  
       2022-06-04 13:01:56 +08:00   1
    刚开始以为是楼主被羞辱了,点开回复一看好像是反过来了。

    问问题应该是和回复者一起来解决问题,但是你这样的回复会让人觉得在考校别人

    你直接忽略没用的回复就好了,减少中文社区的戾气从自己做起
    GeruzoniAnsasu
        10
    GeruzoniAnsasu  
       2022-06-04 18:26:08 +08:00
    in fact, people reply but not answer

    期望每个人都是以解答问题的心态点进来的,这种想法本来就不可取



    其实你可以观察下「解答」退化成「回复」的分界线在哪
    GeruzoniAnsasu
        11
    GeruzoniAnsasu  
       2022-06-04 18:34:45 +08:00
    看了下原帖


    ------

    >
    # 这里的 string 是指字节串(bytes)而不是字符串(str)。
    # machine values 就是值(例如 int 、float 等)的机器表示(内存表示)。
    # 内存里面每个位有 0 和 1 两种状态,通常每 8 位组成 1 个字节,每个字节取值 0~255 。
    # 同一块内存可以按不同的方式来解释。

    >
    value (值)是指整数值(1, 2, 3 ...),实数值(0.1, 1.0, 10.0, ...)、布尔值(true, false)等。
    值都有对应的类型,类型可以看做值的集合。

    machine value (机器值)是指机器(计算机 CPU)能够直接处理的值。

    machine value 可以简单的用几个字节表示,例如:
    无符号整数(8 位,16 位,32 位,64 位等),采用原码表示。32 位无符号整数取值范围为 0 到 2**32-1 。
    有符号整数(8 位,16 位,32 位,64 位等),采用补码表示。32 位有符号整数取值范围为 -2**31 到 2**31-1 。
    浮点数(32 位,64 位等),按 IEEE 754 标准规定的方法表示。32 位浮点数取值范围大约为 -3.4028235e+38 到 3.4028235e+38 ,以及 3 个特殊值。

    machine value 的基本运算(加减乘除等)通常就是一条机器指令,这些运算与数学上的运算有些差异,有溢出、误差等情况。

    详细可以参考 CSAPP 的第二章。

    与 machine value 对应的就是高级语言里的值。
    例如 python 里面的 int ,可以表示很大的整数(取决于内存大小)。
    每个 int 占用的内存不固定,绝对值越大占用内存越多。
    对应的运算也是一个复杂的函数,最终需要很多条机器指令。


    是好解答还是坏解答?以你的定义
    documentzhangx66
        12
    documentzhangx66  
       2022-06-04 20:49:14 +08:00
    还是我来吧。

    1.提问 2 的第二问,作者进行 because 解释的原因其实是错的,因为它拿 array 对比 list ,这两者的差异只是存储上只是是否连续以及是否有指针的区别。但作者原话却说到机器数值上去了,牛头不对马嘴。我本以为作者会讲内存压缩的高级话题,我去翻了下 pdf 原文,结果根本不是这回事,这作者只是单纯的讲错了而已。

    https://raw.githubusercontent.com/hiddenJuliet/pythondocument/master/Fluent%20Python.pdf
    P.48

    2.并不是每个回答者,都是顶尖高手,都敢质疑原文的作者是否出错。那个贴的 1 楼与 2 楼已经觉察到不对劲,但他们因实力没达到顶尖高手的地步,没自信说原作者写错了,但他们也给你指出了一条正确的路子,让你去学 C 语言,去对比 array 与 list 的差异。解决思路与方向是对的。

    3.当你不懂时,别人能花费时间给你回答,无论是否答对,你都应该感谢别人,而不是因为别人答错了,去讥讽别人。当然,如果你达到我这种级别,去喷喷这些回答者,那是他们的荣幸。
    l00t
        13
    l00t  
       2022-06-05 02:22:24 +08:00
    @documentzhangx66 一个都是同一类型,一个支持不同类型,这个才是本质区别好不好。其他都是由此带来的表现罢了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     821 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:17 PVG 06:17 LAX 14:17 JFK 17:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86