python - Python 中的切换字典未正确转换 int 和 str

标签 python dictionary switch-statement

继上一个问题之后,我编写了一个 switch 字典来替换函数中的 switch 语句。在收到用户输入后,我已将此字典放在 def f(x) 下,如下所示。然后该函数应该将字典中匹配的内容写入“a”和“b”,以便可以在 add() 函数中使用。

while loop == 1:
choice = menu()
if choice == '1':
    a = str(input("Enter a note: "))
    b = str(input("Enter an interval: "))

    def f(x):
        notes = {
            'C': 0,
            'Cs': 1,
            'D': 2,
            'Ds': 3,
            'E': 4,
            'F':5,
            'Fs': 6,
            'G': 7,
            'Gs': 8,
            'A': 9,
            'As': 10,
            'B': 11,
            }
        return = notes[x]


    def g(x):
        intervals = {
            'm2': 1,
            'mj2': 2,
            'm3': 3,
            'mj3': 4,
            'p4': 5,
            'T': 6,
            'p5': 7,
            'm6': 8,
            'mj6': 9,
            'm7': 10,
            'mj7': 11,
            }
        return intervals[x]

    f (a)
    g (b)
    add(a, b)

但是,我在这两行中收到“并非所有参数在字符串格式化期间都已转换”错误:

add(a, b)

在脚本的开头,我定义了 add 函数。

def add(a,b):
print ((a), "+", (b), "=", (a + b) %12)

我不知道如何解决这个问题,因为我不太明白代码是如何转换字符串的。我的函数是否需要整数而不是接收字符串?

谢谢!

最佳答案

试试这个:

def add(va,vb):
    print ((va), "+", (vb), "=", (va + vb) %12)

aa =  f(a)
bb =  g(b)
add(aa, bb)

关于python - Python 中的切换字典未正确转换 int 和 str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669214/

相关文章:

python - 从架构中不存在的 JSON 对象中删除属性?

python - 如何读取API JSON数据并存储为Python字典

c# - C# Dictionary 在 C# in depth 2nd Edition 中是如何使用的?

javascript - "Jump dictionaries",switch 语句,或者如何在没有 eval 的情况下执行 "jump dictionaries"?

C# 避免多个 SWITCH 语句 .net

python - CNTK:条件执行

python - 逐组遍历 pandas

c++ - 将元素数量不断变化的 map 导出为 CSV

java - 无法在其他方法中检索 HashMap 输入

android - 温泉开关触发回调的问题