我遇到了关于将数字转换为字符串的问题。
我想从 str(0100) 中得到一个字符串“0100”,但我得到的是“64”。有什么办法可以从 0100 获取字符串“0100”。
更新
感谢许多人指出前导“0”是八进制的指示符。我知道,我想要的是将 0100 转换为“0100”,有什么建议吗?
最好的祝福,
我遇到了关于将数字转换为字符串的问题。
我想从 str(0100) 中得到一个字符串“0100”,但我得到的是“64”。有什么办法可以从 0100 获取字符串“0100”。
更新
感谢许多人指出前导“0”是八进制的指示符。我知道,我想要的是将 0100 转换为“0100”,有什么建议吗?
最好的祝福,
您的第一个问题是文字“0100”,因为它以数字 0 开头,被解释为八进制而不是十进制。相比之下,按预期str(100)
返回。"100"
其次,听起来您想将数字填充为零到固定宽度,您可以使用zfill
字符串上的方法来做到这一点。例如,str(100).zfill(4)
返回"0100"
.
在 Python2 中,0
数字文字的前导表示它是八进制数。这就是为什么0100 == 64
。这也意味着0800
和0900
是语法错误
这是一件有趣的事情,一次或多次吸引了很多人。
在 Python3 中,0100 是语法错误,0o
如果需要编写八进制文字,则必须使用前缀。例如。0o100 == 64
你可以连接两个字符串,所以如果你想要 0100
res = str(0) + str(100)
那样res = '0100'
不确定我是否理解这个问题......也许你正在寻找这个:
'%04o' % 0100 # 0100