2017-02-21 3 views
0

Я кодирования питона «сценарий», который передает из восьмеричной в двоичную сейчас я столкнулся с этим:объект ДИКТ не отозваны,

'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

правильный путь для итерации ключей и значений dict будет:

for x, y in OctalBinary1.items(): 
    if x == sum_var: 
     print ("ok") 
     fin_var += OctalBinary1[x] 
Смежные вопросы