2015-05-11 2 views

ответ

15

Ваш номер p фактическое значение , а не представление этого значения. Так что это фактически 65010, 12128 и 28a16, все в то же время.

Если вы хотите увидеть его как восьмеричное, просто используйте:

print oct(p) 

по следующим транскрипта:

>>> p = 01212 
>>> print p 
650 
>>> print oct(p) 
01212 

Это для Python 2 (который вы кажетесь использовать, поскольку вы используйте вариант 0NNN восьмеричного литерала, а не 0oNNN).

Python 3 имеет немного другое представление:

>>> p = 0o1212 
>>> print (p) 
650 
>>> print (oct(p)) 
0o1212 
+0

В Python3 есть небольшая модификация – Ajay

+0

ТКС для ответа братан, я решил мою проблему – maphongba008

+0

@Ajay, добавил материал Py3, хотя я считаю, что OP все еще использует Py2. Тем не менее, это хорошо. – paxdiablo

6

Одним из способов является Ussé характер формата o от Format Mini Specification Language:

Пример:

>>> x = 01212 
>>> print "0{0:o}".format(x) 
01212 

'о' формате Octal. Выводит число в базе 8.

NB: Вы все еще должны предварять 0 (Если вы не используете встроенную функцию oct()).

Update: В случае, если вы используете Python 3+:

$ python3.4 
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> x = 01212 
    File "<stdin>", line 1 
    x = 01212 
      ^
SyntaxError: invalid token 
>>> x = 0o1212 
>>> print(oct(x)) 
0o1212 
>>> print("0o{0:o}".format(x)) 
0o1212 
+0

ТКС за ответ братан, я решил мою проблему – maphongba008

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

  • Нет связанных вопросов^_^