调试与重构提示
利用 LLM 识别现有代码中的错误,并提出重构和优化建议
调试与重构提示 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 3 节课。
使用 LLM 提升代码质量
大型语言模型(LLM)不仅可用于生成新代码;它们也是改进现有代码的强大助手。您可以把它们看作智能代码审查员!
本课将探讨 LLM 如何帮助您:
- 识别并修复代码中的错误。
- 为重构提出改进建议。
- 优化代码,以提升性能和可读性。
使用人工智能调试:捕捉错误
调试是查找并修复软件中错误(缺陷)的过程。这可能是一项耗时的任务。
LLM 可以通过以下方式显著加快调试速度:
- 分析代码以发现常见错误。
- 精确定位错误位置。
- 提出具体解决方案和修正后的代码。
下面来看一个例子。
第一个调试提示
设想您有一个本应计算列表中数字总和的 Python 函数,但它无法正常工作。您可以提示 LLM 查找错误。
这是一个存在错误的 Python 函数。您能找出错误吗?
def calculate_sum(numbers):
total = 0
for num in numbers:
total + num # This line is the bug!
return total
my_list = [1, 2, 3]
print(f"The sum is: {calculate_sum(my_list)}")LLM 的调试洞见
如果您向 LLM 提供前面的代码,并使用类似“查找此 Python 函数中的错误并说明如何修复它”的提示,它就能正确识别问题。
问题在于,total + num 会计算出一个值,但不会将其重新赋值给 total。以下是修正后的代码:
def calculate_sum(numbers):
total = 0
for num in numbers:
total = total + num # Corrected assignment
return total
my_list = [1, 2, 3]
print(f"The sum is: {calculate_sum(my_list)}")使用 LLM 重构:整洁代码
重构是在不改变外部行为的情况下重新组织现有计算机代码的过程。这就像整理房间时不移动任何家具一样!
重构的主要目标是改善:
- 可读性:让代码更易于理解。
- 可维护性:简化未来的更新和修改。
- 效率:有时让代码运行得更快(尽管这并非其主要目标)。
基本重构提示
LLM 可以建议让代码更简洁、更符合 Python 风格(遵循 Python 的最佳做法)的方法。
请看这个处理列表的函数。它能够运行,但是否可以写得更简洁?
def process_positive_squares(data_items):
result_list = []
for item in data_items:
if item > 0:
squared_val = item * item
result_list.append(squared_val)
return result_list
numbers = [1, -2, 3, -4, 5]
print(f"Processed list: {process_positive_squares(numbers)}")更简洁的版本
使用类似“重构这个 Python 函数,以提高可读性并使其更简洁,同时使用列表推导式”的提示时,LLM 可能会给出这样的建议:
列表推导式是一种根据现有序列创建新列表的紧凑方式。
def process_positive_squares(data_items):
# Using a list comprehension for conciseness
return [item * item for item in data_items if item > 0]
numbers = [1, -2, 3, -4, 5]
print(f"Processed list: {process_positive_squares(numbers)}")使用 LLM 优化代码
除了可读性,LLM 还可以建议如何优化代码,以提升性能。这通常涉及用内置函数或更高效的算法替换自定义循环。
这是一个查找字符首次出现位置的函数。它可以运行,但 Python 中有更优化的方式。
def find_char_manually(text, char):
for i in range(len(text)):
if text[i] == char:
return i
return -1
my_string = "hello world"
print(f"'o' found at index: {find_char_manually(my_string, 'o')}")利用内置函数
这里,一个好的提示可以是:“如何优化这个用于查找字符首次出现位置的 Python 函数?”
LLM 很可能会指出 Python 高度优化的内置字符串方法,例如 .find()。
def find_char_optimized(text, char):
# Using the built-in string find method, which is highly optimized
return text.find(char)
my_string = "hello world"
print(f"'o' found at index: {find_char_optimized(my_string, 'o')}")快速检查
理解调试与重构之间的区别,是有效改进代码的关键。
回顾:您的人工智能代码助手
在本课中,我们了解了 LLM 如何成为提升代码质量的宝贵工具。
- 调试:LLM 可以快速识别错误、解释错误原因并提出修复建议,为您节省时间。
- 重构:LLM 可以帮助改善代码结构、可读性和可维护性,通常会建议使用更简洁或更符合 Python 风格的方式编写代码。
- 优化:LLM 还可以指出性能瓶颈,并建议更高效的方法。
请记住,编写清晰具体的提示,才能从您的人工智能代码助手获得最佳结果!
用 AI 导师学习 AI Prompt Engineering — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 53
- 课程
- 199
常见问题解答
「调试与重构提示」课时是免费的吗?
是的 — 「调试与重构提示」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 3 节课。
「调试与重构提示」这节课中我会学到什么?
利用 LLM 识别现有代码中的错误,并提出重构和优化建议 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Prompt Engineering 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。
「调试与重构提示」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Prompt Engineering 课中编写并运行代码吗?
能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 LLM 生成代码
- 调试与重构提示
- 将 LLM 集成到 IDE