跳到主要内容

编程学习与错误排查

ChatGPT 可以解释代码、分析报错和提出修改方案,但没有运行过的代码不能被当作已验证。普通对话里的建议与能访问仓库、运行命令的开发工具也需要区分。

提供最小复现​

我使用 Python 3,下面的函数在输入空列表时失败。
预期:返回 0;实际:抛出异常。
请解释原因,给出最小修改,并提供空列表、普通列表和负数的检查示例。
不要添加额外依赖。
[粘贴代码和完整报错]

报错要保留堆栈和行号,但先移除密钥、数据库密码和私人地址。截图不便于复制时,直接粘贴文本更合适。

先理解修改范围​

要求说明修改哪些文件、为什么需要这些修改、是否影响外部接口。只修一个边界条件时,不应顺手重写整个项目。

对于陌生代码,先让它追踪输入如何到达错误位置,再讨论修改,避免根据报错表面猜原因。

自己运行并核对​

在可回退的开发环境里应用修改,运行相关测试和原复现步骤。确认“不再报错”是否意味着行为真的正确,而不只是把异常吞掉。

如果涉及依赖版本、数据库迁移或安全设置,查阅对应版本文档。不要直接执行来源不明的下载脚本或破坏性命令。

示例:处理空列表时的除零错误​

下面的 Python 函数在列表为空时会发生除零错误:

def average(values):
return sum(values) / len(values)

先定义预期行为:空列表究竟应该返回 0、返回空值,还是明确报错?如果业务规定返回 0,最小修改可以是:

def average(values):
if not values:
return 0
return sum(values) / len(values)

assert average([]) == 0
assert average([2, 4]) == 3
assert average([-2, 2]) == 0

这个示例演示需求确认和边界检查,不代表所有平均数函数都应把空输入当作 0。输入包含字符串等情况,需要另外定义规则,不能让修复无意中扩大接受范围。

终端报“找不到 package.json”怎么办​

Node.js 项目的命令通常需要在包含 package.json 的目录执行。先用 pwd 查看当前路径,再用 ls 查看文件,进入正确目录后才运行项目脚本。如果终端停在 / 根目录,重新安装依赖无法解决路径错误,还可能触发只读文件系统报错。

向模型求助时,一起提供当前目录、执行命令和完整错误文本。它才能区分目录错误、缺少依赖和程序本身的问题。不要仅复制日志文件位置,因为那一行通常不包含真正的失败原因。

区分 ChatGPT 与 API​

在产品里聊天不等于已经接入 API。开发应用需要理解鉴权、服务端密钥保护、计费和错误处理。API 密钥不应出现在网页前端代码、公开仓库或截图里。

相关:模型与模式选择 · 账号安全。