0

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

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

更新

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

最好的祝福,

4

5 回答 5

1

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

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

于 2012-11-03T06:41:05.177 回答
1

整数应该写成 100,而不是 0100。

您可以使用前导零格式化字符串,如下所示:

>>> "%04d" % 100
'0100'
于 2012-11-03T06:41:40.073 回答
0

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

这是一件有趣的事情,一次或多次吸引了很多人。

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

于 2012-11-03T06:48:26.800 回答
0

你可以连接两个字符串,所以如果你想要 0100

res = str(0) + str(100)

那样res = '0100'

于 2018-11-18T22:03:48.707 回答
-1

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

'%04o' % 0100  # 0100
于 2012-11-03T10:32:26.743 回答