在python中将数字转换为字符串

时间:2012-11-03 06:36:27

标签: python

我遇到了将数字转换为字符串的问题。

我想从str(0100)得到一个字符串“0100”,但我得到的是“64”。我有什么方法可以从0100获得字符串“0100”。

更新

感谢许多人指出领先的“0”是八进制的指标。我知道,我想要的是将0100转换为“0100”,有什么建议吗?

最诚挚的问候,

5 个答案:

答案 0 :(得分:1)

你的第一个问题是文字“0100”,因为它以数字0开头,以八进制而不是十进制来解释。相比之下,str(100)会按预期返回"100"

其次,听起来您希望将数字填零到固定宽度,您可以使用字符串上的zfill方法。例如,str(100).zfill(4)会返回"0100"

答案 1 :(得分:1)

整数应写为100,而不是0100。

你可以format the string使用这样的前导零:

>>> "%04d" % 100
'0100'

答案 2 :(得分:0)

在Python2中,数字文字中的前导0表示它是八进制数。这就是0100 == 64的原因。这也意味着08000900是语法错误

一个有趣的事情让很多人在某个时间被抓住了。

在Python3中,0100是语法错误,如果需要编写八进制文字,则必须使用0o前缀。例如。 0o100 == 64

答案 3 :(得分:0)

您可以将两个字符串都连接起来,所以如果您想要0100

res = str(0) + str(100)

那样res = '0100'

答案 4 :(得分:-1)

不确定我是否明白这个问题......也许你正在寻找这个:

'%04o' % 0100  # 0100