5. 代码辅助


功能介绍

image-20260421133426592

在代码类任务中,DeepSeek 是一个很实用的辅助工具。可以用它来完成代码的初始构建、阅读和理解复杂逻辑、排查运行错误,以及进行后续的代码优化与重构,基本能覆盖日常开发和编程学习的完整流程。

适用场景

描述需求生成代码:说明功能、语言和框架版本,DeepSeek 自动生成带注释的完整代码。

粘贴代码进行调试:粘贴问题代码和错误信息,DeepSeek 分析原因并给出修复方案。

代码解释与学习:粘贴代码并说明你的水平和想了解的方向,DeepSeek 逐步解释并支持追问。

开启深度思考进行代码审查:开启「深度思考」后粘贴代码和背景,R1 模型从多角度输出深入优化建议。

使用技巧

  • 提问时明确说明编程语言版本和使用的库版本,如「Python 3.11」「React 18」,避免生成不兼容的代码
  • 粘贴代码时使用代码块(在代码前后各加三个反引号),这样 DeepSeek 能更准确地识别代码格式
  • 如果代码较长,告诉 DeepSeek 重点关注哪个函数或模块,避免分析范围过于宽泛
  • 收到修复建议后,不要只是复制粘贴,而是理解每处修改的原因,这样才能真正提升编程能力

示例一

请用 Python 写一个函数,实现以下功能:
- 输入:一个包含若干字符串的列表
- 输出:按字符串长度从短到长排序,长度相同的按字母顺序排序
- 要求:代码简洁,并附上简单的使用示例和注释

输出结果

以下是实现该功能的 Python 函数,包含注释和使用示例:

```python
from typing import List

def sort_strings(strings: List[str]) -> List[str]:
    """
    将字符串列表按长度升序排序,长度相同时按字母顺序排序。

    参数:
        strings: 包含若干字符串的列表

    返回:
        排序后的新列表
    """
    # 使用 sorted 函数,key 为一个元组 (len(s), s)
    # 这样会先按长度排序,长度相等时再按字符串字典序排序
    return sorted(strings, key=lambda s: (len(s), s))


# 使用示例
if __name__ == "__main__":
    example_list = ["abc", "ab", "a", "b", "abcd", "aa"]
    sorted_list = sort_strings(example_list)
    print("原始列表:", example_list)
    print("排序后:", sorted_list)
    # 预期输出: ['a', 'b', 'aa', 'ab', 'abc', 'abcd']
```

**输出:**
```
原始列表: ['abc', 'ab', 'a', 'b', 'abcd', 'aa']
排序后: ['a', 'b', 'aa', 'ab', 'abc', 'abcd']
```

**说明:**
- `sorted` 函数会返回一个新的列表,不修改原列表。
- 使用 `lambda s: (len(s), s)` 作为排序键,实现多级排序:先按长度,再按字符串本身(字母顺序)。
- 该方法简洁高效,适用于大多数场景。

示例二

这段 JavaScript 代码报错了,请帮我找出问题:

async function fetchUserData(userId) {
  const response = await fetch(`/api/users/${userId}`)
  const data = response.json()
  return data.name
}

报错信息:
TypeError: Cannot read properties of undefined (reading 'name')

我期望的行为是获取用户名称,实际上返回了 undefined。

示例三

请帮我 review 以下 Python 函数,从以下角度给出改进建议:
1. 代码可读性
2. 异常处理
3. 性能优化
4. 是否符合 Python 最佳实践(PEP 8)

def process(d,l):
    result=[]
    for i in range(len(l)):
        if l[i] in d:
            result.append(d[l[i]])
    return result

示例四

我刚学完 Python 基础,请帮我解释以下这段代码是什么意思:

squares = [x**2 for x in range(1, 11) if x % 2 == 0]

请:
1. 逐步解释每个部分的含义
2. 用等价的 for 循环写法来对比说明
3. 告诉我这种写法叫什么,什么情况下适合使用

示例五

请帮我写一个 SQL 查询:

表结构:
- orders(order_id, customer_id, amount, created_at)
- customers(customer_id, name, city)

需求:
找出2024年每个城市消费总额排名前3的客户,
输出:城市名、客户名、消费总额、城市内排名
请使用窗口函数实现。