通义千问Python学习评测:减少返工次数的最佳实践
用通义千问学Python,真正消耗耐心的不是写不出逻辑,而是写好一运行就暴露函数名拼写错误、缩进混乱、空列表遗漏、测试数据不匹配——每一步都得回滚重来。一次返工打断节奏,三次练习跑不通,再高的学习热情也会被消磨干净。
先让通义千问输出可直接运行的最小闭环
别让它一上来就设计“完整的学生管理系统”,先锁定一个能立刻验证的原子单元:比如“输入两个整数,返回它们的最大公约数”。
在提问时明确要求:【必须包含可直接复制粘贴的完整代码、一行输入示例、一行预期输出】。
这样你 Ctrl+C → Ctrl+V → 回车,就能看到结果是 True 还是报错。如果它返回的是伪代码或分段描述,立刻追问:“请输出完整可运行的 .py 文件内容,不要解释,不要注释,只要代码和示例输入输出。”
用“校验指令”堵住常见返工漏洞
通义千问默认不校验边界,比如你让它写“把列表去重”,它可能直接用 set(),却不管原始顺序——而你的练习题明确要求“保持首次出现顺序”。
方法一:加约束型提示词
在原始请求后追加一句:“要求保持原列表元素顺序,不使用 set(),不依赖第三方库,用纯 Python 实现。”
方法二:主动补漏式追问
拿到代码后,立刻补问:“如果输入是空列表、含嵌套字典、有 None 值,这段代码会怎样?请给出对应修复后的版本。”这一步能提前暴露它忽略的异常路径,比自己调试快十倍。
把每次对话变成可复用的校验模板
第一步:复制它生成的函数代码,粘贴到本地 .py 文件中。
第二步:在同一文件末尾,手写三行测试用例:
# 测试用例
# assert my_function([1,2,2,3]) == [1,2,3]
# assert my_function([]) == []
第三步:运行 python 文件,看是否全部通过。不通过?就把报错信息连同原函数一起发回通义千问:“这个函数在空列表输入时报 IndexError,请只修改出错行,不要重写整个函数。”
【注意:永远不要让它重写整个函数——90% 的返工源于结构重排,而不是单行逻辑错误】
用真实错误信息驱动下一轮提问
① 运行报错后,截图或复制完整 traceback(从 Traceback 开始到最后一行)。
② 把 traceback + 出问题那几行代码 + 你刚输的测试输入,三者合并成一段话发给通义千问。
③ 不要写“为什么报错”,直接写:“执行以下代码时出现 ValueError: invalid literal for int() with base 10: '',请定位错误行并修复。”
它对具体错误文本的响应准确率,远高于你描述“我输入字符串它崩了”这类模糊表达。一次精准反馈,就能跳过五次试错。
