1. 项目概述:用Python动态生成AI提示词
作为一名从零开始自学编程的转行者,我深刻理解新手面对黑框终端时的恐惧感。直到我把所有Python练习都换成AI提示词生成场景后,编程突然变得无比真实——每行代码都能立刻看到对AI输出的影响。这种即时反馈正是成年人学习编程最需要的动力引擎。
本教程将带你用Python最基础的三个概念(变量、数据类型、input()函数),实现可动态调整的AI提示词生成器。不同于网上那些写死的固定模板,我们的代码能让终端用户实时输入故事主题、风格偏好、字数要求等参数,自动组合成专业级提示词。这种"代码即生产力"的体验,正是Python+AI组合对普通人最友好的切入点。
提示:本系列所有案例都经过Groq、DeepSeek等主流AI平台实测验证,生成的提示词可直接投入实际使用
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心概念解析与工具准备
2.1 为什么选择Python+AI作为入门组合
传统编程教学最大的问题是与真实需求脱节。当你在学习打印"Hello World"时,根本看不到这行代码的实际价值。而用Python操作AI提示词时:
- 5分钟就能做出可用的工具
- 每行代码都直接影响AI输出质量
- 成果可直接用于工作场景(写文案、做策划、生成报告)
以动态提示词为例,只需掌握:
- 变量 → 存储提示词组件
- 数据类型 → 区分文字和数字参数
- input() → 获取用户实时输入
就能做出远超手工拼接的专业工具。
2.2 开发环境配置建议
对于完全零基础的学员,推荐以下两种方案:
方案A:在线环境(零配置)
- 使用DeepSeek Code或Google Colab的在线Python环境
- 优点:无需安装,浏览器打开即用
- 缺点:功能可能受限
方案B:本地环境(推荐)
- 安装Python 3.10+(官网下载勾选"Add to PATH")
- 安装VS Code编辑器
- 添加Python扩展包
- 新建.py文件开始编码
测试环境是否正常工作:
python复制print("AI提示词工场启动成功!")
运行后看到终端输出即表示配置正确。
3. 变量与数据类型实战
3.1 变量的本质与命名规范
变量就像贴满便签的储物柜,每个名字对应存储着特定数据。当我们写:
python复制role = "资深心理咨询师"
计算机会:
- 在内存创建字符串"资深心理咨询师"
- 贴上名为"role"的标签
- 后续通过role即可快速访问该数据
命名三原则:
- 见名知意:用
writing_style而非ws - 下划线连接:
word_count优于wordcount - 避开关键字:不用
print、input等作为变量名
3.2 数据类型深度解析
AI提示词涉及的主要数据类型:
| 类型 | 示例 | 用途 | 注意事项 |
|---|---|---|---|
| str | "幽默风趣" | 存储文本参数 | 需用引号包裹 |
| int | 500 | 存储字数限制等数值 | 可进行数学运算 |
| float | 0.8 | 控制温度参数 | 注意精度问题 |
| bool | True | 开关选项 | 首字母大写 |
类型转换实战:
python复制# 从input()获取的默认是字符串
user_input = "300"
# 显式转换为整数才能计算
word_count = int(user_input) + 100 # 最终400
# 转字符串用于拼接
prompt = "生成" + str(word_count) + "字内容"
3.3 提示词结构化存储方案
专业提示词通常包含多个组件,建议用变量分类存储:
python复制# 身份设定
role = "顶尖美食评论家"
# 任务参数
task = "为米其林餐厅撰写点评"
word_limit = 800
required_keywords = ["分子料理", "时令食材"]
# 风格控制
tone = "专业中带有诗意"
avoid = "避免使用'好吃'等俗套词汇"
# 输出格式
format_requirement = "Markdown格式,包含##标题和-列表"
这种结构化存储既方便后续修改,也利于团队协作时快速理解各部件作用。
4. 交互式输入与动态拼接
4.1 input()函数的高级用法
基础的input()只能获取单行文本,通过组合技巧可实现复杂交互:
python复制print("=== AI提示词生成器 ===")
print("请按提示输入参数(输入后按回车确认)\n")
# 多参数收集
theme = input("创作主题(如:未来城市/乡村爱情):").strip()
style = input("写作风格(如:王家卫/鲁迅):")
length = input("建议字数:")
# 带默认值的输入
temperature = input("创意度(0.1-1.0,默认0.7):") or "0.7"
关键技巧:
.strip()去除首尾空格or设置默认值- 用
\n控制换行提升可读性
4.2 三种字符串拼接方案对比
根据Python版本和场景选择最佳拼接方式:
方案1:加号连接(通用)
python复制prompt = "角色:" + role + ",要求:" + requirements
- 优点:所有版本兼容
- 缺点:大量拼接时代码冗长
方案2:format()方法(Python 3.0+)
python复制prompt = "作为{},请用{}风格创作关于{}的内容".format(role, style, theme)
- 优点:参数可重复使用
- 缺点:参数多时易错位
方案3:f-string(Python 3.6+推荐)
python复制prompt = f"""作为{role},请创作{theme}主题内容
要求:
- 风格:{style}
- 字数:{length}字
- 避免:{avoid_list}"""
- 优点:直观易读
- 缺点:低版本不兼容
4.3 防错处理与输入验证
直接转换用户输入存在风险,应添加基础验证:
python复制def get_valid_input(prompt, input_type=str):
while True:
try:
value = input(prompt)
return input_type(value)
except ValueError:
print(f"请输入有效的{input_type.__name__}类型值")
# 安全获取数值
word_count = get_valid_input("字数要求:", int)
temperature = get_valid_input("创意度(0.1-1.0):", float)
此代码会持续提示直到输入合法值,避免程序意外崩溃。
5. 完整案例:智能文案生成器
5.1 项目架构设计
我们开发一个完整的文案生成工具,包含以下模块:
- 用户输入收集
- 参数验证处理
- 提示词模板渲染
- 结果格式化输出
python复制def main():
print("=== 智能文案生成器 ===")
# 1. 输入收集
product = input("产品名称:")
audience = input("目标人群:")
emotion = input("情感基调(如:温馨/激情):")
channel = input("投放渠道(如:朋友圈/微博):")
# 2. 生成提示词
prompt = build_prompt(product, audience, emotion, channel)
# 3. 输出结果
print("\n=== 生成结果 ===")
print(prompt)
def build_prompt(product, audience, emotion, channel):
return f"""作为资深{channel}文案策划,为{product}创作面向{audience}的推广内容。
核心要求:
- 情感基调:{emotion}
- 适配平台:{channel}
- 包含3个核心卖点
- 结尾有行动号召语
请直接输出文案,不要解释。"""
5.2 行业定制化技巧
不同场景需要调整提示词结构:
电商直播话术:
python复制duration = input("预计直播时长(分钟):")
key_products = input("主推商品(用逗号分隔):")
prompt = f"""你是TOP3电商主播,正在为{key_products}进行{duration}分钟直播。
话术要求:
1. 每5分钟强调一次价格优惠
2. 每15分钟重复一次购买方式
3. 使用{emotion}语气
4. 包含3个使用场景故事"""
技术文档编写:
python复制tech_stack = input("技术栈:")
doc_type = input("文档类型(API参考/快速入门):")
prompt = f"""作为{tech_stack}专家,编写{doc_type}文档。
要求:
- 代码示例占比30%以上
- 包含'常见问题'章节
- 使用Markdown语法
- 专业但不过度学术化"""
6. 错误排查与性能优化
6.1 常见运行时错误
| 错误现象 | 原因 | 解决方案 |
|---|---|---|
| ValueError | 字符串转数字失败 | 先用.isdigit()检查 |
| NameError | 变量名拼写错误 | 检查大小写一致性 |
| SyntaxError | 字符串引号不匹配 | 统一用单/双引号 |
| TypeError | 类型操作不兼容 | 显式类型转换 |
6.2 调试技巧实录
案例:用户输入字数后程序崩溃
python复制length = input("字数:") # 用户输入"五百"
words = int(length) # 报错
解决流程:
- 添加打印检查原始输入:
python复制print(f"输入内容:{length},类型:{type(length)}") - 实现安全转换:
python复制if length.isdigit(): words = int(length) else: print("请输入数字")
6.3 性能优化建议
当处理超长提示词时:
- 使用列表暂存部分:
python复制parts = [] parts.append(f"角色:{role}") parts.append(f"任务:{task}") prompt = "\n".join(parts) - 避免频繁字符串拼接
- 对于固定模板,考虑使用.py文件存储
7. 扩展练习与项目升级
7.1 基础巩固练习
练习1:变量类型识别
给出以下代码,预测各变量类型:
python复制a = "100"
b = 100
c = input("输入:")
d = True
e = 3.14
练习2:提示词重构
将以下写死的内容改为动态输入:
python复制prompt = "作为旅行博主,写一篇800字的巴厘岛攻略"
7.2 项目升级挑战
挑战1:多轮输入
改造程序支持:
- 首轮输入基本参数
- 根据首轮输出选择优化方向
- 生成第二版提示词
挑战2:模板保存
添加功能:
- 将常用提示词结构保存为模板
- 通过编号快速调用历史模板
- 支持模板内容修改
经过这些升级后,你的提示词工具将具备真正的工作场景可用性。我在实际使用中发现,当提示词变量超过7个时,建议改用字典存储参数,这是下节课列表与字典内容的完美过渡。
