ich ein Programm schreibt zufällige 12-Ton-Skalen (Musiktheorie) zu erzeugen und speichern sie in einer Liste numbers[]
mod verwenden zu ersetzen, wenn else-Anweisung
Ich habe eine Funktion invert()
genannt, die zwischen jedem Wert der Differenz nimmt und dann wird das auf der vorherigen Nummer ausgeführt, um die Intervalle in der Liste zu invertieren.
zum Beispiel (1,5,4,7,8,3) invertiert wäre (1,9,10,7,6,11)
def invert():
diff = [b - a for (a, b) in zip(numbers[:-1], numbers[1:])]
for a in range(11):
if numbers[a] - diff[a] > 11:
numbers[a+1] = numbers[a] - diff[a] - 12
elif numbers[a] - diff[a] < -11:
numbers[a+1] = numbers[a] - diff[a] + 12
else:
numbers[a+1] = numbers[a] - diff[a]
return numbers
Meine Frage ist, wie ich verwende modulo, um die Verwendung dieser if-Anweisungen zu entfernen. Gibt es eine Möglichkeit, Mod zu verwenden, um Zahlen zu umbrechen, wenn also der Unterschied -15 ist, würde er auf -3 aufgewertet werden?