而当你发布在网上的问题最终被解决后,在问题后附上解法说明,按社区规则采纳/点赞有用的答案,是值得推荐的做法。对于回答者来说,这比一句口头赞赏更礼貌。
提问的禁忌
上面说了些建议,如果你还不够理解,那么请记住,不要像这样提问:
搜一步就可以解决的问题。比如“Python 里怎么读取一个文件的内容?”X-Y 问题。所谓 X-Y 问题,就是你要解决 X 问题,你认为可以用 Y 方法解决,然后你就问怎么实现 Y,但其实 X 问题根本就有更合适的解法。比如“我怎么取一个字符串的后3位?”,而实际他想解决的是“怎样获取文件的文件类型?”笼统而抽象的问题。比如“我能不能学会 Python?”。这个问题被问的频率很高,但这不该问别人,问你自己。不要乱猜原因,甚至声称是别人代码的 bug。你需要客观描述和分析问题。比如“我一输比10大的数就不对,是不是 Python 在我电脑上有问题?”不要把多个问题混为一谈,分清楚因果。代码有不止一个错误是很正常的,如果别人的方法让你的报错发生变化,说明对上一个问题起了作用,这种情况需要进一步分析,而不是立刻回复一句“按照你的方法改了还是不行”。(这种属于真的不礼貌,会让回答者不想再理你)在开放的论坛、讨论组、问答网站,尽量不要通过发私信、加好友的方式来提问。(事实上,这种方式大多也无效)不要妄想让别人替你调试 bug、写作业、开发。
一个糟糕问题的例子:
哪位懂Python的帮我看下这是什么问题?(一张几十行的代码截图)
一个好问题的例子:
我的程序里将输入和变量比较大小,结果报错,请问是为什么?我是Python3报错:TypeError: '<' not supported between instances of 'int' and 'str'(代码+输出的截屏、代码文本)
一个更好问题的例子:
我的程序里将输入和变量比较大小,结果报错,请问是为什么?我是 Windows 下的 Python 3.7报错:TypeError: '<' not supported between instances of 'int' and 'str'提示是第11行:if answer < num: 我在前面加了 print,两个变量都是有值的。(代码+输出的截屏、代码文本)
提问的本质还是思考。如果你能提出一个好问题,必定是对问题思考后的结果。这对你本身也是一种练习。不思考就直接提问,既浪费了锻炼的机会,也很难得到满意答复。