DeepSeek作为具备代码生成能力的模型,在脚本编写场景下对提示词的表达方式非常敏感。新手往往以为需要背诵复杂的提示工程模板,实际上只要把任务边界描述清楚,模型就能给出可运行的脚本。本章从最基础的写法出发,说明如何用自然语言把需求翻译成模型能理解的结构。

第一种新手写法是「直述目标式」。这种方式不需要任何技巧,只需要把你想让脚本做什么用一句话说明,并补充运行环境。例如你想处理本地日志,直接写「用Python写一个脚本,读取当前目录的app.log,统计包含ERROR的行数并打印」。这种写法的核心是名词具体、动作明确,不要使用「优化一下」「处理数据」这类模糊词。
下面是一段对应这种写法的提示词和脚本示例。提示词越短,模型越依赖你给的上下文,因此新手应在提示词中自带文件路径、格式等要素。
# 提示词:用Python写脚本,读取 ./app.log,统计含ERROR的行数
def count_errors(path):
n = 0
with open(path, 'r', encoding='utf-8') as f:
for line in f:
if 'ERROR' in line:
n += 1
return n
if __name__ == '__main__':
print(count_errors('./app.log'))
第二种写法是「示例驱动式」。当你自己也说不清规则时,给模型一小段输入和期望输出,它就能反推逻辑。比如你希望把时间戳转成中文日期,但不确定格式,可以贴一行原始数据和想要的结果,模型会照此生成批量处理脚本。这种写法降低了表达门槛,适合对编程语法不熟的人。
示例驱动要注意例子必须有代表性。如果只给正常数据,脚本可能缺异常处理;若附带一条空行或乱码样本,生成代码通常更健壮。以下展示带示例的提示词对应的脚本结构。
# 提示词中包含:输入 1700000000 输出 2023年11月14日
import time
def ts_to_cn(ts):
t = time.localtime(int(ts))
return f'{t.tm_year}年{t.tm_mon}月{t.tm_mday}日'
print(ts_to_cn(1700000000))
分步指令写法降低出错率
新手常犯的错误是把所有要求揉在一个长段落里,导致模型遗漏细节。分步指令写法是把任务拆成阶段,用序号告诉DeepSeek先做什么后做什么。例如第一步写函数骨架,第二步加参数校验,第三步写命令行调用。这样每步输出都可单独检查,发现问题只需重发某一步。
以批量重命名脚本为例,你可写:「1. 用Python写函数接收文件夹路径;2. 遍历其中txt文件;3. 在文件名前加日期;4. 提供命令行入口」。模型会逐步补全,比起一次性生成,逻辑断裂概率更低。该写法也方便你在中途插入限制,比如「第二步跳过隐藏文件」。
分步写法的另一好处是能控制代码复杂度。新手可在第二步明确「不要用第三方库」,第三步说「打印改名前后对照」。下面代码展示按此提示生成的轻量脚本。
import os
from datetime import date
def rename_txt(folder):
today = date.today().isoformat()
for name in os.listdir(folder):
if name.endswith('.txt') and not name.startswith('.'):
src = os.path.join(folder, name)
dst = os.path.join(folder, today + '_' + name)
os.rename(src, dst)
print(src, '->', dst)
if __name__ == '__main__':
rename_txt('.')
不过分步写法也有缺点:步骤之间若缺乏统一变量名,模型可能前后不一致。因此新手应在第一步就规定好关键变量,如「文件夹变量叫folder,不变」。
避坑与基础规范
很多新手喜欢在提示词堆砌「高级」「高效」「最佳实践」等词,这反而干扰模型。DeepSeek更吃具体约束,比如「用标准库」「兼容Python3.8」。另外,不要把提示词写成小说,模型对长叙事的抽取能力有限,短句换行效果更好。
还有一个误区是盲目要求注释多。新手觉得注释多就等于好懂,但模型可能因此把精力放在写说明而非逻辑上。正确做法是提示词写「仅在函数头写一行注释」,保持代码干净。以下对比两种提示词结果差异。
| 提示词倾向 | 生成特点 |
|---|---|
| 多写注释解释每行 | 代码冗长,核心逻辑被稀释 |
| 仅函数头一行注释 | 结构清晰,易读易改 |
最后,新手应保存自己验证过的好提示词,形成小模板库。比如「用Python标准库实现X,输入Y,输出Z,带异常处理」就可复用。随着积累,写脚本会从碰运气变成稳定生产。
当你在正文里讨论HTML标签时,要注意转义。例如提到<input>元素时应写成转义形式,而行内代码用open这种code标签包裹即可。掌握这些提示词写法和规范,DeepSeek脚本编写对新手就是可控的事。