大家好,我是链上杯子(掘金:链上杯子)。
失业一年了,天天想着怎么翻身。最近在用循环批量生成提示词变体的时候,感觉特别实用——以前手动改一个参数就要重跑一次,现在 for 循环一跑,十几二十个版本直接出来,丢给模型对比哪个效果最好,省了不少重复劳动。while 也能用来做简单的多轮对话模拟,挺有意思的。
本课目标:掌握 for 循环和 while 循环的基本用法。for 用于遍历列表或固定次数重复,while 用于条件满足时持续执行。通过循环,实现批量生成提示词变体和简单多轮对话模拟。
核心代码实战
1. for 循环 —— 批量生成提示词变体
themes = ["未来城市生活", "失恋后的自我和解", "一只猫的冒险", "时间旅行的悖论"]
base = "你是一个小说创作者。请写一个原创短篇故事,主题是「{}」,字数约400字,结尾留悬念。"
print("批量生成的提示词:")
for theme in themes:
prompt = base.format(theme)
print("\\n" + prompt)
我运行后看到:
批量生成的提示词:
你是一个小说创作者。请写一个原创短篇故事,主题是「未来城市生活」,字数约400字,结尾留悬念。
你是一个小说创作者。请写一个原创短篇故事,主题是「失恋后的自我和解」,字数约400字,结尾留悬念。
你是一个小说创作者。请写一个原创短篇故事,主题是「一只猫的冒险」,字数约400字,结尾留悬念。
你是一个小说创作者。请写一个原创短篇故事,主题是「时间旅行的悖论」,字数约400字,结尾留悬念。
2. while 循环 —— 简单多轮对话模拟
print("=== 模拟多轮对话(输入 'quit' 退出) ===")
history = []
while True:
user_input = input("你:")
if user_input.lower() == "quit":
break
# 模拟 AI 回复(实际可以替换成调用模型)
ai_reply = f"AI:收到你的消息「{user_input}」,我在思考中……(这里可以扩展成真实回复)"
history.append(f"你:{user_input}")
history.append(ai_reply)
print(ai_reply)
print("\\n对话结束。完整历史:")
for msg in history:
print(msg)
我试着输入几句后输入 quit,看到的输出类似:
=== 模拟多轮对话(输入 'quit' 退出) ===
你:今天心情不太好
AI:收到你的消息「今天心情不太好」,我在思考中……(这里可以扩展成真实回复)
你:想听点治愈的话
AI:收到你的消息「想听点治愈的话」,我在思考中……(这里可以扩展成真实回复)
你:quit
对话结束。完整历史:
你:今天心情不太好
AI:收到你的消息「今天心情不太好」,我在思考中……(这里可以扩展成真实回复)
你:想听点治愈的话
AI:收到你的消息「想听点治愈的话」,我在思考中……(这里可以扩展成真实回复)
3. 组合:用户控制生成多少个变体
task = input("你要生成什么类型的文案?(例如:小红书标题):")
count = int(input("生成几个变体?(输入数字):"))
print(f"\\n正在生成 {count} 个 {task} 变体:")
for i in range(1, count + 1):
prompt = f"你是一个文案高手。请为「{task}」生成第{i}个创意版本,风格独特,长度不超过30字。"
print(f"变体 {i}:")
print(prompt)
print("-" * 40)
运行输入“小红书种草文案”和 3,输出三个不同版本的提示词。
小练习(2 道)
练习1(基础)
定义一个包含 5–8 个关键词的列表(例如颜色、情绪、场景)。
用 for 循环遍历列表,为每个关键词生成一句“写一首关于{}的短诗”的提示词,并打印出来。
练习2(进阶)
写一个 while 循环,让用户不断输入“角色 + 任务”格式的短句(例如“温暖导师+安慰失恋”),每次输入后拼接成完整提示词并打印。输入“quit”退出。每次输入后把生成的提示词加到一个 history 列表里,最后退出时打印全部历史。
本课小结
本课介绍了 for 循环(遍历列表/固定次数)和 while 循环(条件控制重复)。
在 AI 场景中,for 适合批量生成变体,while 适合模拟多轮交互或用户控制的循环生成,为后续函数封装和真实 API 调用铺路。
下节预告
下一课:函数(def)基础 —— 封装 generate_prompt 函数,复用代码。
欢迎在评论区贴出练习代码或生成的提示词,有问题可以留言。