如何将字母或2更改为您预设的数字?

时间:2016-04-27 06:50:20

标签: python

我正在编写一个程序,假设将音乐会音调中的音符改为非音乐会音调乐器上的音高。任何谁。我已经有了这个。

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

我将所有#字母命名为程序原因#在python中使事情成为评论

用户键入他们想要在钢琴上听到的字母。

snote=raw_input("What is the concert note that you want to play? ")

然后是什么工具。

instr=raw_input("What pitch is your instrument in? ")

然后程序打印乐器需要播放的音符以播放音乐会音高

所以想要在Bb音高(-2)乐器上演奏Bb是Ab。 C =(0)

if note=="BB":
    newnote=Bb-A
print newnote

这部分我正在努力尝试将用户输入的字母写入一个数字,以便程序可以进行数学运算然后打印出转置的音符。如果有人知道如何将字母更改为预设号码,我将非常感激,因为我还需要为我想要做的其他程序执行此操作。但是,如果你能做到,那就谢谢你。

2 个答案:

答案 0 :(得分:0)

你真的是以错误的方式解决这个问题。您应该创建一个字典,将用户输入转换为特定的数字。这是一个例子。我使用了用{。

替换#的方法
notesDict = {"F" : 5, "Es" : 5, "Fb" : 4, "E" : 4}
key = input("What key do you want to hear ").replace("#","s")
print(notesDict[key])

# What key do you want to hear: E#
# 5

答案 1 :(得分:0)

您可以使用dictionary

notes = {"F" : 5, "E#" : 5, "Fb" : 4, "E" : 4}
value = raw_input()
print(notes[value]) if value in notes else print("Invalid input")

当python将其视为单独的标记时,#也被视为注释。如果#在"E#"内,例如。 python将像任何其他角色一样对待。