我已经在Python 3中编写了一个用户输入的菜单,但要正确转换字符串,我必须手动写出if语句。
我需要将这一切都改为字典,以便在几个不同的函数中使用,将变量存储在一些函数中,将列表存储在另一个函数中。到目前为止,if语句看起来像这样。我只是粘贴了一个'但是' b'很相似。
while loop == 1:
choice = menu()
if choice == '1':
a = str(input("Enter a note: "))
b = str(input("Enter an interval: "))
if a == "Bs" or a == "C":
a = 0
elif a == "Cs" or a == "Db":
a = 1
elif a == "D":
a = 2
elif a == "Ds" or a == "Eb":
a = 3
elif a == "E":
a = 4
elif a == "Es" or a == "F":
a = 5
elif a == "Fs" or a == "Gb":
a = 6
elif a == "G":
a = 7
elif a == "Gs" or a == "Ab":
a = 8
elif a == "A":
a = 9
elif a == "As" or a == "Bb":
a = 10
elif a == "B" or a == "Cb":
a = 11
这是我写过的add()函数。
def add(a,b):
print ((a), "+", (b), "=", (a + b) %12)
我认为我需要将所有这些变量存储在字典中的某个位置,并让函数检查它们而不是每次都在if语句中。我在Python中读过关于字典的转换语句但不明白。
def f(x):
return {
'C': 0,
'D': 2,
}[x]
这与普通词典的区别是什么?
notes = {'C' = '0': 'D' = '2'}
谢谢!
答案 0 :(得分:1)
此 是普通字典。不同之处在于您的“switch”字典是带索引的内联常量。让我们稍微扩展一下:
def f(x):
ref_dict = {
'a': 1,
'b': 2,
}
return_tone = ref_dict[x]
return return_tone
你看到它是如何工作的吗?现在,用 ref_dict [x] 替换最后一行中的 return_tone ,并用常量字典值替换 ref_dict 。