2017-02-21 67 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]