AI 提高编程效率 | 豆包MarsCode AI刷题

171 阅读3分钟

在现代编程学习中,AI 已经成为了刷题过程中极为有力的助手。不仅能帮忙快速解题,还能在遇到输入错误、逻辑不当或者思路混乱时,快速定位并给出有效建议。这对于刷题和日常开发都是极为重要的。本文将通过一道简单的矩阵调整题目,展示如何利用 AI 进行代码纠错,提升编程效率。


问题描述

我们的问题是:给定一个二维矩阵 a,如果矩阵中某一个格子的值是偶数,则该值变为它的三倍;如果是奇数,则保持不变。我们需要输出调整后的矩阵。

测试样例:

  1. 输入:a = [[1, 2, 3], [4, 5, 6]]
    输出:[[1, 6, 3], [12, 5, 18]]

  2. 输入:a = [[7, 8, 9], [10, 11, 12]]
    输出:[[7, 24, 9], [30, 11, 36]]

  3. 输入:a = [[2, 4], [6, 8]]
    输出:[[6, 12], [18, 24]]


下面是最初的代码,初学者在输入时可能会犯一些常见的错误:

def adjust_matrix(a):
    # 遍历矩阵的每个元素
    for i in range(a):
        for j in range(a[i]):
            # 如果元素是偶数,则将其乘以3
            if a[i][j] % 2 == 0:
                a[i][j] = a[i][j] * 3
    return a

在编写这段代码时,可能存在的错误包括:

  1. 错误1for i in range(a) 这句中,a 是一个列表,不能直接用于 range,因为 range 函数要求整数类型。
  2. 错误2for j in range(a[i]) 这里同样错误,a[i] 是列表的一行,不能直接用于 range

AI 纠错过程

错误1分析:

  • 问题for i in range(a) 中,a 是一个二维列表,而 range() 需要传入整数。
  • AI建议:需要改为 range(len(a)),即用 len(a) 获取矩阵的行数。

错误2分析:

  • 问题for j in range(a[i]) 试图对每一行使用 range(),但每一行也是列表,不能直接传入 range
  • AI建议:改为 range(len(a[i])),通过 len() 函数获取每一行的列数,确保我们在遍历每个元素时不会出错。

修改后的代码

根据 AI 的提示,修改后的代码如下:

def adjust_matrix(a):
    # 遍历矩阵的每个元素
    for i in range(len(a)):  # 修正为len(a),遍历行数
        for j in range(len(a[i])):  # 修正为len(a[i]),遍历列数
            # 如果元素是偶数,则将其乘以3
            if a[i][j] % 2 == 0:
                a[i][j] *= 3  # 保留简洁的乘法运算
    return a

测试修改后的代码

现在,我们可以重新测试代码,看看结果是否符合预期:

# 样例1
a = [[1, 2, 3], [4, 5, 6]]
print(adjust_matrix(a))  # 输出: [[1, 6, 3], [12, 5, 18]]

# 样例2
a = [[7, 8, 9], [10, 11, 12]]
print(adjust_matrix(a))  # 输出: [[7, 24, 9], [30, 11, 36]]

# 样例3
a = [[2, 4], [6, 8]]
print(adjust_matrix(a))  # 输出: [[6, 12], [18, 24]]

通过测试可以看到,修改后的代码能够顺利运行,并输出了符合题目要求的结果。


AI 辅助学习的优势

通过这次示例,可以清晰地看到 AI 在刷题和代码纠错中的几大优势:

  1. 快速发现问题:AI 可以迅速定位代码中的常见错误,减少调试时间。
  2. 高效提供建议:不仅仅是指出问题,AI 还能提供有针对性的解决方案和修改建议,帮助编程者更快地掌握正确的写法。
  3. 提升学习效果:通过 AI 的纠错过程,初学者可以迅速了解自己容易出错的地方,逐步提高代码的正确性和编写效率。

结论

AI 已经成为编程学习中不可或缺的助手,尤其是在刷题和解决问题时,能够帮助初学者快速识别错误并给出修改建议。通过本文的示例,大家可以了解到 AI 如何在代码纠错中发挥作用,并提高编程效率。如果我们能合理利用 AI,必将事半功倍。