不懂代码?没关系。跟着这篇文章,即使你从未写过一行Python,也能借助AI的帮助,在30分钟内打造一个能自动写诗的趣味程序。
引言:为什么从"诗歌生成器"开始?
学习编程最难的不是语法本身,而是"不知道学了能干什么"。一个自动诗歌生成器,完美避开了这两个痛点:
-
它足够有趣:你写的程序能"创作"出独一无二的句子,这种成就感远胜于打印一个"Hello World"
-
它足够简单:核心逻辑不到20行代码,却能让你接触到变量、列表、随机数、字符串拼接等编程核心概念
-
它足够AI:我们还会让程序接入真正的大语言模型,让你感受从"拼凑"到"创作"的质的飞跃
我们将分两个版本来完成:
-
版本1(基础版):随机组合词库,生成"胡言乱语"式现代诗
-
版本2(进阶版):调用AI模型,生成真正有意境的诗歌
第一部分:准备工作
1.1 安装Python环境
访问Python官网(python.org)下载最新版本。安装时务必勾选"Add Python to PATH"(添加Python到系统路径),否则后续会很麻烦。
1.2 选择一个趁手的编辑器
-
VS Code:功能强大,插件丰富,适合长期学习
-
IDLE:Python自带的简易编辑器,开箱即用
-
在线编辑器:如Replit或Jupyter Notebook,无需安装,打开浏览器就能写
1.3 让AI当你的编程助教
在写代码的过程中,你一定会遇到各种问题。这时候,让AI来帮你解答是最好的学习方式。无论是语法报错还是思路卡壳,直接问AI就行。
第二部分:版本1 ------ 随机组合词库生成"现代诗"
这个版本不需要任何AI接口,完全靠Python内置的random模块。它很像一个"词语万花筒":我们预先准备好一些词语,然后让程序随机抽取并拼在一起。
2.1 完整代码
python
import random # 导入随机数模块 # ------------------------------ # 1. 建立我们的“词语仓库” # ------------------------------ nouns = ["风", "云", "山", "海", "月光", "星辰", "落叶", "雨滴", "孤独", "自由"] verbs = ["追逐", "拥抱", "遗忘", "亲吻", "诉说", "聆听", "穿透", "淹没"] adjs = ["温柔的", "苍白的", "炽热的", "冰冷的", "寂静的", "破碎的", "永恒的"] connectors = ["然后", "于是", "但是", "也许", "终于", "从未"] # ------------------------------ # 2. 定义生成一句诗的“小工厂” # ------------------------------ def generate_one_line(): """随机组合词语,生成一句诗""" # 随机选取不同词库的元素进行拼接 # 例如:形容词 + 名词 + 动词 + 名词 line = random.choice(adjs) + random.choice(nouns) + \ random.choice(verbs) + random.choice(nouns) return line # ------------------------------ # 3. 生成一整首诗 # ------------------------------ def generate_poem(num_lines=6): """生成一首包含num_lines行的诗""" poem_lines = [] for _ in range(num_lines): # 随机决定是否在句首加连接词 if random.random() > 0.7: # 30%的概率加上连接词 line = random.choice(connectors) + generate_one_line() else: line = generate_one_line() poem_lines.append(line) # 用换行符把所有诗句连接起来 return " ".join(poem_lines) # ------------------------------ # 4. 运行程序,打印结果 # ------------------------------ if __name__ == "__main__": print(" 🌟 你的专属诗歌生成器 🌟 ") print(generate_poem(4)) print(" ✨ 创作完成 ✨") 2.2 代码解读
-
词库:我们把词语分门别类放进了列表(比如
nouns列表存放名词),你可以随意增删里面的词语 -
random.choice():这个函数会从列表中随机抽取一个元素,比如random.choice(nouns)可能会抽到"风"或"海" -
字符串拼接:用
+号把几个词语连成一句完整的诗 -
random.random():会返回一个0到1之间的小数,用来制造"偶尔加个连接词"的随机效果
2.3 试试看
运行这段代码,你的第一个程序应该会输出类似这样的诗句:
炽热的星辰拥抱月光
也许苍白的风追逐落叶
寂静的雨滴淹没自由
破碎的孤独亲吻星辰
虽然有些句子可能逻辑不通,但这种"陌生化"的组合恰恰是现代诗的魅力所在。
第三部分:版本2 ------ 调用AI模型生成真正的诗歌
基础版玩几下就腻了?因为我们只是"拼凑",而不是"创作"。接下来,我们让程序接入AI大模型,它会根据你给定的主题,真正"理解"并"创作"出独一无二的诗歌。
3.1 选择一个国内可用的AI API
推荐方案:DeepSeek API(价格极低,几乎等于免费)
DeepSeek是目前国内性价比最高的AI模型之一,生成一首诗的成本微乎其微。
操作步骤:
-
访问DeepSeek官网注册账号
-
进入"控制台" → “API Keys” → 创建一个新密钥,复制保存好(只显示一次)
-
充值几块钱(能用很久很久)
3.2 安装依赖库
在终端或命令提示符中运行:
bash
pip install openai requests 注意:DeepSeek的接口兼容OpenAI的调用方式,所以我们直接用openai库就行了。
3.3 进阶版完整代码
python
import openai # ---------------------------------------------- # 1. 配置你的API密钥(把下面的字符串换成你自己的) # ---------------------------------------------- API_KEY = "sk-你的DeepSeek密钥" # 设置DeepSeek的接口地址 client = openai.OpenAI( api_key=API_KEY, base_url="https://api.deepseek.com/v1" ) # ---------------------------------------------- # 2. 定义函数:让AI写诗 # ---------------------------------------------- def ai_generate_poem(topic="秋天", style="现代诗", lines=6): """ 调用AI生成诗歌 topic: 诗歌的主题,比如“爱情”、“大海”、“故乡” style: 诗歌风格,比如“现代诗”、“七言绝句”、“朦胧诗” lines: 生成多少行 """ # 精心设计的提示词(Prompt)是关键 prompt = f"""你是一位才华横溢的诗人。请以“{topic}”为主题,创作一首{style}。 具体要求: 1. 诗题为《{topic}》 2. 共{lines}行 3. 语言优美,有意境,避免陈词滥调 4. 不要有任何解释和说明,只输出诗歌本身 """ # 调用AI接口 response = client.chat.completions.create( model="deepseek-chat", messages=[ {"role": "system", "content": "你是一位优秀的现代诗人。"}, {"role": "user", "content": prompt} ], temperature=0.8 # 值越高,输出越有创意和随机性 ) # 提取AI回复的文本 poem = response.choices[0].message.content return poem # ---------------------------------------------- # 3. 主程序:和用户交互 # ---------------------------------------------- if __name__ == "__main__": print(" " + "="*30) print(" 🤖 AI 诗歌生成器 🤖") print("="*30) # 让用户输入主题 user_topic = input(" 请输入一个诗歌主题(比如:故乡、星空、母亲):") if not user_topic: user_topic = "月光" print(f"没有输入,我将以“{user_topic}”为主题生成。") print(" ⏳ AI正在创作中,请稍候... ") # 生成诗歌 poem = ai_generate_poem(topic=user_topic) # 打印结果 print("-"*30) print(poem) print("-"*30) print(f" ✨ 你的主题《{user_topic}》诗歌已生成 ✨") 3.4 运行效果
当你输入"故乡"并运行,程序会调用AI,输出类似这样的内容:
《故乡》
村口的老槐树又落叶了
我在千里之外的地图上
寻找那条弯曲的土路母亲的白发和炊烟一起升起
在黄昏里渐渐模糊只有月亮还认得
那个在异乡失眠的人
这种水平的"创作",在基础版本里是绝对无法实现的。
第四部分:让程序更"好玩"的改进方向
当你掌握了基础版本和进阶版本之后,还可以继续给它添加更多功能:
-
添加押韵检查:写一个简单的函数,判断每行最后一个字的韵母是否相同或相似
-
导出为图片:将生成的诗歌配上背景图,保存为一张精美的卡片,方便分享到朋友圈
-
接入语音合成:让程序不仅能写诗,还能把诗"读"出来
-
制作成网页:用Flask框架写一个简单的网页,让朋友们也能在线使用
从一个只会随机拼凑词语的"文字万花筒",到能够创作出有意境诗歌的AI助手,你只用了不到30行核心代码就完成了从"拼凑"到"创作"的跨越。
这篇文章的真正目的,不仅仅是教你写一个诗歌生成器,而是想让你亲身体验:在AI时代,编程的门槛已经被彻底打破。
-
当你不知道某个函数的用法时,直接问AI
-
当代码报错看不懂时,把错误信息复制给AI
-
当你有了一个新想法但不知道怎么实现时,让AI帮你写一个框架
你不需要记住所有的语法和函数,你需要的是想法和行动。现在,打开你的电脑,亲手运行一下上面的代码吧。当你看到屏幕上出现第一行AI为你写的诗句时,那种创造的快乐会告诉你------编程,真的没那么难。