display an octal value as its string representation

maphongba008 picture maphongba008 · May 11, 2015 · Viewed 15.1k times · Source

I've got a problem when converting an octal number to a string.

p = 01212
k = str(p)
print k

The result is 650 but I need 01212. How can I do this? Thanks in advance.

Answer

paxdiablo picture paxdiablo · May 11, 2015

Your number p is the actual value rather than the representation of that value. So it's actually 65010, 12128 and 28a16, all at the same time.

If you want to see it as octal, just use:

print oct(p)

as per the following transcript:

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

That's for Python 2 (which you appear to be using since you use the 0NNN variant of the octal literal rather than 0oNNN).

Python 3 has a slightly different representation:

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