如何循环繁琐的if语句
发布时间:2020-12-20 12:10:12 所属栏目:Python 来源:网络整理
导读:我现在正在尝试制作一个用小提琴制作乐谱并将给定音符??翻译成弦乐上的位置的程序,但我的问题是,当我问一个键是锋利的还是平的,以及有多少锐利或平面是在那个关键签名中,我发现我正在制作一堆繁琐的if / then语句,例如: if keysig == sharp and signum == 2
我现在正在尝试制作一个用小提琴制作乐谱并将给定音符??翻译成弦乐上的位置的程序,但我的问题是,当我问一个键是锋利的还是平的,以及有多少锐利或平面是在那个关键签名中,我发现我正在制作一堆繁琐的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' 你会发现回去做一个稍微改变的另一个陈述变得非常烦人.我怎样才能解决这个问题? 对于那些不阅读乐谱的人: 解决方法
你可以使用字典:
transpositions = { (sharp,2): {'LE': 'D4','SC': 'A4'},(sharp,3): {'LE': 'D5','SC': 'G2'},# etc. } note.update(transpositions.get((keysig,signum),{})) 这使用(keysig,signum)元组作为键,映射到特定的音符转置.如果未找到此类签名,则不进行更新(使用空字典更新). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |