学径XUEJING · 个人学习平台通知设置

课程库 AI 主线 程序思维基础 › 第 5

项目课:文字版文案生成器

项目课90 分钟

本课导读

第一个正式项目:做一个 slogan 生成器——点一下就随机组合出一条宣传语,一次能批量出十条备选。它会用上你这个月学的几乎所有东西:列表、字典、f-string、循环、函数、random。做完之后,它就是你作品集的第一件展品

项目课的规矩

项目课和普通课的学法不同:

  1. 先自己想,再看实现——每一步都先停下来想"我会怎么做",再对照代码
  2. 每一版都要亲手跑通,不是读懂就行
  3. 最后必须魔改:换成你自己的主题和词库——改过的项目才是你的项目

需求分析:像工程师一样开工

要做什么?一句话需求:

输入一个产品或主题,程序随机组合出朗朗上口的宣传语,可以批量生成供人挑选。

先拆解。一条 slogan 的套路其实是"模板 + 填空":

{形容词}{主题}{动词短语}」→「不一样的咖啡,点亮每个清晨」

所以程序只需要三样东西:

  1. 词库:形容词一堆、动词短语一堆(列表!)
  2. 模板:带空的句式(f-string!)
  3. 随机抽取:每次从词库随机拿一个(random!)

V1:最小可跑版

老规矩,先让核心转起来——一个模板、两个词库、随机填空:

Python

新朋友 random.choice(列表):从列表里随机抽一个元素(上个单元的 random.randint 抽数字,这位抽元素——同一个工具箱)。

多运行几次——每次都是新组合。5 个形容词 × 4 个动作 = 20 种可能,词库越厚,花样越多。

V2:函数化 + 多模板

两个升级:把逻辑打包成函数(主题变成参数,不再写死"咖啡");模板也做成列表随机抽——句式不再单调:

Python

体会函数的价值:同一套逻辑,喂什么主题就产什么文案——make_slogan("任何东西")

V3:批量生成 + 去重

评选文案要有备选。批量生成 10 条,而且不许重复(随机抽取可能撞车)——去重正好用上列表的 in

Python

读一遍 batch_slogans 的骨架,全是老朋友:while"凑够为止"、in 查重、continue 弃权重抽、append 入篮、return 交货。项目从来不需要新魔法,只需要把学过的东西组合对

注意

一个值得注意的坑:如果词库太小而 count 太大(比如只有 6 种组合却要 10 条不重复的),while 会永远凑不够——死循环!这就是上单元防死循环自查的真实版。V3 的词库有 6×5×3=90 种组合,要 8 条很安全。给函数加"组合数不够就报警"的保护,留给你在魔改时挑战。

验收与魔改(作品集第一件)

跑通 V3 只是及格线,魔改完成才算项目完成。验收清单:

分步操作

随堂测验

随堂测验0 / 4 题正确

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 道编程题,毕业考,去吧。

划选正文任意文字可高亮、批注或加入复习卡

讨论

载入中…