如何循环一个乏味的如果政治家

2024-05-18 21:23:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试制作一个程序,为小提琴演奏乐谱,并将给定的音符转换为弦上的某个位置,但我的问题是,当我问一个键是尖锐的还是扁平的,以及该键签名中有多少尖锐或扁平的部分时,我发现我在做一堆乏味的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,并将它们转换成小提琴手指板上的精确位置,这样你就不必手动搜索笔记了。这个节目是为小提琴初学者,缺乏经验,在阅读乐谱。你知道吗


Tags: and程序leif语句note音符笔记
1条回答
网友
1楼 · 发布于 2024-05-18 21:23:28

你可以用字典:

transpositions = {
    (sharp, 2): {'LE': 'D4', 'SC': 'A4'},
    (sharp, 3): {'LE': 'D5', 'SC': 'G2'},
    # etc.
}

note.update(transpositions.get((keysig, signum), {}))

它使用(keysig, signum)元组作为键,映射到特定的音符换位。如果找不到这样的签名,则不会进行更新(使用空字典进行更新)。你知道吗

相关问题 更多 >

    热门问题