![](/img/trans.png)
[英]Converting dictionary values in python from str to int in nested dictionary
[英]Switch dictionary in Python not converting int and str correctly
在上一個問題之后,我編寫了一個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)
我不確定如何解決此問題,因為我不太了解代碼如何轉換字符串。 我的函數是否期望整數而不是接收字符串?
謝謝!
在調用add函數之前,先嘗試打印a和b來查看它們的值。
我的猜測是,開關函數內部的變量在函數范圍內,並且不會在函數外部更改變量。
為什么不通過變量接收返回的值?
a = f(a)
b = g(b)
嘗試這個:
def add(va,vb):
print ((va), "+", (vb), "=", (va + vb) %12)
aa = f(a)
bb = g(b)
add(aa, bb)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.