Python 显示八进制值作为其字符串表示形式

Python 显示八进制值作为其字符串表示形式,python,format,octal,Python,Format,Octal,我在把八进制数转换成字符串时遇到了一个问题 p = 01212 k = str(p) print k 结果是650,但我需要01212。我该怎么做?提前感谢。一种方法是使用以下文件中的o格式字符: 示例: >>> x = 01212 >>> print "0{0:o}".format(x) 01212 “o”八进制格式。输出以8为基数的数字 NB:您仍然必须预先设置0(除非您使用内置函数oct()) 更新:如果您使用的是Python 3+: $ pytho

我在把八进制数转换成字符串时遇到了一个问题

p = 01212
k = str(p)
print k

结果是
650
,但我需要
01212
。我该怎么做?提前感谢。

一种方法是使用以下文件中的
o
格式字符:

示例:

>>> x = 01212
>>> print "0{0:o}".format(x)
01212
“o”八进制格式。输出以8为基数的数字

NB:您仍然必须预先设置
0
(除非您使用内置函数
oct()

更新:如果您使用的是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
$python3.4
Python 3.4.0(默认值,2014年4月11日,13:05:11)
[GCC 4.8.2]在linux上
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>x=01212
文件“”,第1行
x=01212
^
SyntaxError:无效令牌
>>>x=0o1212
>>>打印(10月(日))
0o1212
>>>打印(“0o{0:o}”。格式(x))
0o1212

您的号码
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

在蟒蛇3中有轻微的modification@Ajay,添加了Py3的内容,尽管我相信OP仍在使用Py2。尽管如此,知道这一点还是很好的。