Ich schreibe ein Programm, das eine Note in Konzerttonhöhe zu einer Tonhöhe auf einem nicht konzertanten Instrument ändern soll. Irgendjemand. Das habe ich schon.Wie ändere ich einen Buchstaben oder 2 in eine voreingestellte Nummer?
F=5
E#=5
Fb=4
E=4
Eb=3
Ds=3
D=2
Db=1
Cs=1
C=0
B#=0
Cb=-1
B=-1
Bb=-2
A#=-2
A=-3
Ab=-4
G#=-4
G=-5
Gb=-6
F#=-6
Ich nannte die alle # Buchstaben s in Programm Ursache # in Python Dinge Kommentar
und die Benutzer einen Brief macht, dass sie auf dem Klavier hören wollen.
snote=raw_input("What is the concert note that you want to play? ")
Was ist dann das Instrument in aufgeschlagen wird.
instr=raw_input("What pitch is your instrument in? ")
Dann druckt das Programm die Notiz, dass das Gerät den Kammerton zu spielen, um zu spielen, muss
so auf ein zu Konzert Bb wollen Bb-Tonhöhe (-2) Instrument ist Ab. C = (0)
if note=="BB":
newnote=Bb-A
print newnote
Dieser Teil mit ich bin zu kämpfen versuchen, einen Brief zu übernehmen, dass der Benutzer in eine Zahl so dass das Programm die Mathematik kann dann die transponierte Note ausdrucken. Wenn jemand weiß, wie man einen Buchstaben zu einer voreingestellten Nummer ändert, werde ich es sehr schätzen, weil ich dies auch für ein anderes Programm tun muss, das ich versuche zu tun. Aber danke, dass du es versuchst, wenn du es nicht kannst.
Beachten Sie, dass "Eingabe" in Python 3 nur so funktioniert; Für Python 2.7 (welches OP benutzt) ist 'raw_input' immer noch der richtige Weg. –
Das ist wahr, habe nicht bemerkt, dass op nicht auf 3 stand. – Keatinge
Da der Schlüssel eine Zeichenkette ist, müssen sie nicht die '#' durch 's' ersetzen, sie könnten einfach' {... verwenden, "E #": 5, ..} ' – rj93