2017-02-21 70 views
0

我編碼一個python「腳本」,從八進制轉換爲二進制傳輸,現在我遇到這樣的:字典對象不是可調用,

'dict' object is not callable

這是我的腳本:

OctalBinary1 = { 
      "0" : "000", 
      "1" : "001", 
      "2" : "010", 
      "3" : "011", 
      "4" : "100", 
      "5" : "101", 
      "6" : "110", 
      "7" : "111" 
} 

def toBinaryOctal(x): 
      counter = 0 
      sum_var = "" 
      fin_var = "" 
      if len(x) % 3 == 0: 
        for i in x: 
          counter += 1 
          sum_var += str(i) 
          if counter == 1: 
           for x , y in OctalBinary1(): 
             if x == sum_var: 
                print ("ok") 
                fin_var += OctalBinary1[x] 
toBinaryOctal("123") 
+2

你應該寫'OctalBinary1.items()'在第二個'for'循環和btw,漂亮的聖誕樹。 –

+0

錯誤信息很明顯,不是嗎?字典不是可以作爲函數調用的對象。 –

+0

Python已經有了你所尋求的轉換的設備,試試'bin(int(「123」,8))'或'「{:b}」.format(int(「123」,8))'更多的控制格式。你可以在這裏找到格式字符串語法規範(https://docs.python.org/3/library/string.html#format-string-syntax)。 – farsil

回答

2

的正確的方法遍歷一個字典的鍵和值將是:

for x, y in OctalBinary1.items(): 
    if x == sum_var: 
     print ("ok") 
     fin_var += OctalBinary1[x]