项目课:文字版文案生成器
项目课约 90 分钟
本课导读
第一个正式项目:做一个 slogan 生成器——点一下就随机组合出一条宣传语,一次能批量出十条备选。它会用上你这个月学的几乎所有东西:列表、字典、f-string、循环、函数、random。做完之后,它就是你作品集的第一件展品。
项目课的规矩
项目课和普通课的学法不同:
- 先自己想,再看实现——每一步都先停下来想"我会怎么做",再对照代码
- 每一版都要亲手跑通,不是读懂就行
- 最后必须魔改:换成你自己的主题和词库——改过的项目才是你的项目
需求分析:像工程师一样开工
要做什么?一句话需求:
输入一个产品或主题,程序随机组合出朗朗上口的宣传语,可以批量生成供人挑选。
先拆解。一条 slogan 的套路其实是"模板 + 填空":
「
{形容词}的{主题},{动词短语}」→「不一样的咖啡,点亮每个清晨」
所以程序只需要三样东西:
- 词库:形容词一堆、动词短语一堆(列表!)
- 模板:带空的句式(f-string!)
- 随机抽取:每次从词库随机拿一个(random!)
V1:最小可跑版
老规矩,先让核心转起来——一个模板、两个词库、随机填空:
新朋友 random.choice(列表):从列表里随机抽一个元素(上个单元的 random.randint 抽数字,这位抽元素——同一个工具箱)。
多运行几次——每次都是新组合。5 个形容词 × 4 个动作 = 20 种可能,词库越厚,花样越多。
V2:函数化 + 多模板
两个升级:把逻辑打包成函数(主题变成参数,不再写死"咖啡");模板也做成列表随机抽——句式不再单调:
体会函数的价值:同一套逻辑,喂什么主题就产什么文案——make_slogan("任何东西")。
V3:批量生成 + 去重
评选文案要有备选。批量生成 10 条,而且不许重复(随机抽取可能撞车)——去重正好用上列表的 in:
读一遍 batch_slogans 的骨架,全是老朋友:while"凑够为止"、in 查重、continue 弃权重抽、append 入篮、return 交货。项目从来不需要新魔法,只需要把学过的东西组合对。
注意
一个值得注意的坑:如果词库太小而 count 太大(比如只有 6 种组合却要 10 条不重复的),while 会永远凑不够——死循环!这就是上单元防死循环自查的真实版。V3 的词库有 6×5×3=90 种组合,要 8 条很安全。给函数加"组合数不够就报警"的保护,留给你在魔改时挑战。
验收与魔改(作品集第一件)
跑通 V3 只是及格线,魔改完成才算项目完成。验收清单:
随堂测验
1. random.choice(adjectives) 的作用是?
2. batch_slogans 里为什么用 while 而不是 for range(count)?
3. if s in results: continue 这两行在整个流水线里负责什么?
4. 词库只有 6 种组合,却调用 batch_slogans(topic, 10),会发生什么?
本课小结
- 完整项目流水线:需求 → 拆解(词库/模板/随机)→ V1 最小可跑 → V2 函数化 → V3 批量去重
- 新工具只有
random.choice,其余全是旧知识的组合——项目的本质是组合 - while + in + continue + append = "凑够不重复的 N 个"通用套路(注意组合数上限的死循环陷阱)
- 魔改是项目的一部分:换词库、加句式、加参数,做完它才是你的作品集第一件
下一课:阶段 0 里程碑测验——20 题 + 1 道编程题,毕业考,去吧。
划选正文任意文字可高亮、批注或加入复习卡
讨论
载入中…