2013-07-03 6 views
3

Ниже приведено выражение python. Он преобразует целое число в двоичное.Что такое% o в этом файле python?

>>>octtab = {'0':'000', '1':'001', '2':'010', '3':'011', 
     '4':'100', '5':'101', '6':'110', '7':'111'} 
>>>def bin1(d, width=0): 
    "integer to binary (string)" 
    s = "%o" % d 
    b = '' 
    for el in s: 
     b += octtab[el] 
    if width > 0: 
     if len(s) > width: 
      return b[:width] 
     b = b.zfill(width) 
    return b 

Я не знаю значения% o. Заранее спасибо :)

+0

Примечание: это плохой код. Большая часть его может быть заменена на «bin (d)», а усечение, когда двоичный файл слишком длинный, вызовет проблемы где-нибудь. – user2357112

+0

Возможно, это из действительно старой программы, но проще использовать '' {: 0 {} b} ". Format (d, width)' –

ответ

5

%ostring formatting. Вы используете %o для восьмеричных номеров (например, 8 номеров):

>>> print "%o" % 011 
11 
>>> print "%o" % 8 
10 # Because 010 == 8 
+0

Или, возможно, более наглядно 'print '% o"% 8', который печатает '10 '. – tripleee

+0

@ tripleee Lol, вот что я искал;) – TerryA

+0

Огромное спасибо :) – nextdoordoc

Смежные вопросы