必须先判断是生成代码还是排错:有报错则走排错路径,否则走生成路径;生成需用动词句式明确语言、输入、输出三要素并加约束;排错须提供完整堆栈、上下文代码及“实际现象+预期目标”固定句式。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你在知乎直答里搜“AI代码怎么问”,结果看到一堆混着讲原理、给模板、修bug的杂烩答案——根本分不清哪条是帮你写新函数的,哪条是救你崩溃报错的。问题出在提问时没把“我要生成”和“我在排错”这两件事物理隔开。
先做二选一判断:手上有无报错代码
打开知乎直答输入框前,盯着自己屏幕问一句:【我当前是否正被一段正在运行但报错的代码卡住?】 是→走排错路径;否→走生成路径。这个判断必须在敲第一个字之前完成,否则AI会按默认逻辑把排错需求当成生成需求来重写逻辑,反而掩盖真实bug位置。
如果已有代码却只描述“它不工作”,AI只能靠猜——可能把类型错误当成业务逻辑缺失,把空指针当成输入校验疏漏。
生成类提问:用动词开头锁定语言+输入+输出
方法一:用“请写一个……实现……”句式
例如:“请写一个Python函数,接收字符串列表和关键词,返回所有含该关键词的字符串索引。”
这句里,“Python函数”框定语言和粒度,“接收字符串列表和关键词”定义输入,“返回所有含该关键词的字符串索引”明确输出——三要素缺一不可。漏掉“返回索引”只说“筛选字符串”,AI可能直接返回匹配项而非下标。
方法二:加约束条件防过度发挥
在基础需求后追加一句:“不要用正则,用in操作符逐字符比对。”
【不加这句的话,AI大概率调用re.search,而你实际开发环境可能禁用正则模块】
知乎数据获取 - 极简设计,支持三级认证降级(Browser Profile → File Cookie → Fallback),确保数据可靠获取 Zhihu Data Fetcher - Minimalist design with three-level auth fallback (Browser Prof...
方法三:指定输出结构防冗余
结尾补上:“只输出可直接复制粘贴的代码块,不要解释、不要示例调用、不要注释。”
排错类提问:三步缺一不可
第一步:复制完整报错堆栈(含文件名、行号、错误类型及前面几行关键路径)
这一步操作起来很简单,直接把终端里的红色报错文字全选复制就行。但很多人只截图不复制文字,知乎直答无法识别图片里的错误信息。
第二步:粘贴出问题代码段(至少包含报错行上下各3行)
不能只贴函数名或缩略片段,要带上下文——比如报错在df.iloc[5],就得贴出df创建、赋值、索引前后的5~6行。
第三步:用固定句式收尾
“这段代码运行时报错【粘贴错误信息】,但预期输出是……,请指出问题并修复。”
注意:不能只写“为什么报错”,也不能只写“帮我改一下”。前者让AI泛泛讲原理,后者让它瞎猜你想要什么结果。必须把“实际现象”和“预期目标”同时钉死。










