Ich suche nach Codeverbesserung oder einer vorgefertigten Version von dem, was ich selbst implementiert habe, da ich denke, dass es dort sein könnte oder sollte sauberer Weg, um das zu erreichen, was ich will.Python wickelt sich auf einer Liste herum, wenn der Listenindex außerhalb des Bereichs liegt.
Ich schreibe ein Stück Software, um Gitarrentabulatoren in klassische Notation zu konvertieren, ich muss die Nummer auf einer Registerkarte in die entsprechende Note konvertieren und es wäre nützlich für eine Liste jeder Saitennote aus der Startreihe zu erstellen .
Ich habe eine Liste von Noten, (a - g #) und eine Liste von Bünden (0, 21).
Noten [Bund] funktioniert gut für die ersten elf Noten, aber danach bekomme ich offensichtlich einen Indexfehler.
Der Code, den ich dies umgehen müssen, ist hier:
notes = ["a", "a#", "b", "c", "c#", "d", "e", "f", "f#", "g", "g#"]
note = 21
while note >= len(notes):
note -= 11
try:
print notes[note]
except:
continue
Es funktioniert, aber es scheint ein wenig ... lang, gibt es einen besseren Weg, dies zu tun?
verwenden Werden Sie nicht "d #" zu vergessen? Wenn dies der Fall ist, ist es ein guter Weg, "%" wie "notes [note% len (notes)]" zu verwenden, da dadurch automatisch die Listengröße geändert wird. –