🏠 首页 › 攻略 › AI写的代码跑不通?3步让提示词自己帮你修

AI写的代码跑不通?3步让提示词自己帮你修

用AI写代码跑不起来怎么办?别手动改。把报错扔回去让它修,用3轮迭代的提示词结构把问题定位到行。本文附3个实战场景:Python脚本、SQL查询、正则表达式。

AI写的代码跑不通,你第一反应是什么?

大多数人:手动改。

其实不用。把报错扔回去,让AI自己修。但直接说"运行报错了"没用。它不知道错在哪。

关键是把报错上下文给它。3步,下面是具体做法。

第1步:把"现场"完整交出去

不要只给报错。报错本身只有行号,没有上下文。

给AI这三样东西:

1. 你的提示词(你当时怎么让它写这段代码的)
2. 生成的代码
3. 终端里的完整报错

完整报错包括Traceback。别截断。截断了AI就瞎猜。

举例:

你的提示词:写一个函数,读取CSV文件,统计每列的平均值

生成的代码:
def avg_stats(filename):
    import csv
    with open(filename) as f:
        reader = csv.reader(f)
        header = next(reader)
        ...

终端报错:
Traceback (most recent call last):
  File "stats.py", line 12, in <module>
    avg_stats("sales.csv")
  File "stats.py", line 8, in avg_stats
    totals[col] += float(row[col])
IndexError: list index out of range

注意报错里的 list index out of range。这是说CSV某一行比表头列数少。

第2步:让AI定位到行,别让它重写

一个常见失误:你直接把整段代码扔回去说"帮我修一下"。

AI大概率会重写整个函数。新代码看着差不多,可能引入新问题。

正确提示词:

报错在第8行,IndexError: list index out of range。
只改出问题的地方,其他逻辑别动。
改完告诉我改了哪几行,为什么。

“只改出问题的地方"这句话很重要。它让AI做最小改动,而不是重新生成。

第3步:修完立刻跑,再报错就再来一轮

修完的代码跑一遍。

又报错了?再来一轮。把新报错给AI,同样说"只改出问题的地方”。

通常2~3轮就收敛了。每轮改动越来越小,说明问题被逐步定位。

3个实战场景

场景1:Python脚本处理CSV

AI写代码时假设CSV每行列数一致。实际数据有缺列。

报错 list index out of range 后,用上面第2步的提示词,AI会加上列数检查:

if len(row) < len(header):
    continue  # 跳过不完整行

场景2:SQL查询跑不通

你让AI写查询,它用了某个表的别名,但你的表结构没这个别名。

报错是"column not found"。把报错+你的 SHOW CREATE TABLE 一起给AI:

报错:Column 'user_id' in field list is ambiguous
这是我的表结构:[粘贴CREATE TABLE]
只改WHERE和SELECT部分,别动其他。

场景3:正则匹配不对

AI给的正则在测试数据上不匹配。把不匹配的具体字符串给AI:

这个正则:^(\d{4})-(\d{2})-(\d{2})$
测试数据:2026-05-08 14:30:00(匹配失败,但应该匹配)
只改正则本身,别改代码。

AI会指出时间部分缺失了。

一个容易踩的坑

别把"AI生成的代码"当成"最终代码"。

AI写的第一版是"大概能跑的参考"。你得跑一遍,确认没有错,再交给它修。跳过测试这一步,修出来的东西可能还是错的。

还有一个坑:别一次性把项目所有代码都丢给AI改。它上下文有限,改动越多越容易乱。一次只修一个报错,收敛了再下一个。

你现在用AI写代码遇到最多的报错类型是什么?是语法错还是逻辑错?评论区说说。