Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0105
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在:
个人网站: `https://oeasy.org`
蓝桥云课: `https://www.lanqiao.cn/courses/3584`
GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 配套视频
- 上次研究了 首尾吟
- 事情总是 绕圈重复
- 我们需要 找到规律
- 文字 除了 首尾呼应之外
- 也可以 层叠递进 吗?
- 五个字组成字符串
- 循环起来
- 可以 来个 七言 的 吗?
- 苏东坡赏花后作了前两句
赏花归去马如飞 - 去马如飞酒力微”
- 故意留尾让苏小妹续接
- 苏小妹一眼识破回环逻辑
- 补上后两句
酒力微醒时已暮 - 醒时已暮赏花归
- 让全诗形成完整循环
- 苏东坡对此十分赞赏
- 可以用切片的方法
- 得到 这首诗 吗?
poem = "赏花归去马如飞酒力微醒时已暮赏花归"
poem[0:7]
poem[3:10]
poem[7:14]
poem[10:18]
- 间距并不相等
- 赏花归 出现了 2次
- 可以只出现 1次 吗?
poem = "赏花归去马如飞酒力微醒时已暮"
poem[0:7]
poem[3:10]
poem[7:14]
poem[10:] + poem[:3]
- 压缩成功
- 能谱个曲子吗?
import mido
from mido import Message, MidiFile, MidiTrack
# 创建MIDI文件,设定默认PPQN=480(四分音符=480tick,二分音符=960tick)
mid = MidiFile()
track = MidiTrack()
mid.tracks.append(track)
# 初始化:120BPM速度 + 选择竹笛音色(贴近羽调式古风,program=73)
track.append(mido.MetaMessage('set_tempo', tempo=mido.bpm2tempo(120)))
track.append(Message('program_change', program=73, time=0))
# 核心配置:
# 1. 五声羽调式(以D为羽音,对应音高:D4-F4-G4-A4-C5,符合回环柔和的调性)
# 2. 诗句对应旋律:4句诗共用核心动机,第4句旋律回归第1句,实现回环
pitch_map = {
# 第1句:赏花归去马如飞
"赏": 62, "花": 65, "归": 67, "去": 69, "马": 72, "如": 69, "飞": 67,
# 第2句:去马如飞酒力微(复用第1句后4字旋律,自然衔接)
"酒": 67, "力": 65, "微": 62,
# 第3句:酒力微醒时已暮(复用第2句前3字旋律,铺垫回环)
"醒": 62, "时": 65, "已": 67, "暮": 69,
# 第4句:醒时已暮赏花归(复用第3句前4字+第1句前3字旋律,完成回环)
"赏": 62, "花": 65, "归": 67
}
# 完整28字回文诗文本
poem = [
"赏", "花", "归", "去", "马", "如", "飞", # 第1句(7字)
"去", "马", "如", "飞", "酒", "力", "微", # 第2句(7字)
"酒", "力", "微", "醒", "时", "已", "暮", # 第3句(7字)
"醒", "时", "已", "暮", "赏", "花", "归" # 第4句(7字)
]
# 生成音符事件:前6字四分音符(480tick),尾字二分音符(960tick)
for i, char in enumerate(poem):
pitch = pitch_map[char]
# 音符按下(音量中等,velocity=70)
track.append(Message('note_on', note=pitch, velocity=70, time=0))
# 判断是否为句尾字(第7、14、21、28字),设置对应时长
if (i + 1) % 7 == 0:
track.append(Message('note_off', note=pitch, velocity=70, time=960)) # 尾字:二分音符
else:
track.append(Message('note_off', note=pitch, velocity=70, time=480)) # 非尾字:四分音符
# 保存MIDI文件
mid.save('huihuan_poem_yu_mode.mid')
print("28字回文诗羽调式MIDI已生成:huihuan_poem_yu_mode.mid")
赏花归去马如飞
去马如飞酒力微
酒力微醒时已暮
醒时已暮赏花归
poem = "天香荡水动心莲合梦缘"
- 应该如何提取切片呢?
- 这有啥 应用场景吗?
- 用 生成 回环诗 总结
- 比 哪些 那ai生成 顺口溜的
- 高级多了
- 怎么生成呢?
- 回环文
- 历史上
谁写回环诗- 比较出名呢?
- 前秦时期才女 苏蕙所作
- 窦滔 赴任襄阳 要带小妾
- 苏蕙 是 正妻
- 不高兴 拒绝同行
- 独守空房
- 将璇玑图织于锦缎之上
- 寄予其夫
- 八百四十一字
- 纵横各二十九字
- 纵、横、斜、交互、正、反读或退一字、迭一字读均可成诗
-
诗有三、四、五、六、七言不等
- 共有一千多种成诗方法
-
其他艺术形式也有类似的吗?
- 这种重复性的 节奏感
- 在 脱口秀里面 叫做 callback
- 反复刺激
- 还有吗?
- 绕口令
- 元素的重复
- 排列组合
- 构成乐趣
- 相声叫一挂到底
- 就问你 什么 叫
- 雨打沙滩 万点坑
-
《吃葡萄不吐葡萄皮》
- 吃葡萄不吐葡萄皮
- 不吃葡萄倒吐葡萄皮
-
《牛郎恋刘娘》
- 刘娘念牛郎
- 牛郎年年恋刘娘
- 刘娘连连念牛郎
- 郎恋娘来娘念郎
-
《水连天》
- 天连水,水连天
- 水天一色望无边
- 蓝蓝的天似绿水
- 绿绿的水如蓝天
-
还有吗?
- 这次研究了
回环文- 绕圈读
- 文字
重叠反复
- 这些都是由 列表构成的
- 列表 还能怎么玩呢?🤔
- 下次再说 👋
- 配套视频
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。


















