【发布时间】:2016-07-07 03:10:47
【问题描述】:
我目前正在尝试制作一个程序,该程序可以获取小提琴的乐谱并将给定的音符转换为弦上的位置,但我的问题是,当我询问一个键是升音还是降音,以及有多少升音时或单位在那个关键签名中我发现我正在制作一堆乏味的 if/then 语句,例如:
if keysig == sharp and signum == 2:
note['LE'] == 'D4'
note['SC'] == 'A4'
elif keysig == sharp and signum == 3:
note['LE'] == 'D5'
note['SC'] == 'G2'
您会发现,返回并进行稍微更改的另一个声明变得非常烦人。我该如何解决这个问题?
对于那些不阅读乐谱的人: 基本上我想说的是,该算法将记录用户输入(例如 A、G 或 D)并将它们转换为小提琴指板上的确切位置,因此您不必手动搜索音符.本课程适用于缺乏乐谱阅读经验的小提琴初学者。
【问题讨论】:
-
为了我们这些不读乐谱的人的利益,你能在这里解释一下算法吗?
-
试用
{(sharp, 3): {'LE': 'D5', 'SC': 'G2'}}[keysig, signum]
标签: python if-statement translate music-notation