我遇到了将数字转换为字符串的问题。
我想从str(0100)得到一个字符串“0100”,但我得到的是“64”。我有什么方法可以从0100获得字符串“0100”。
更新
感谢许多人指出领先的“0”是八进制的指标。我知道,我想要的是将0100转换为“0100”,有什么建议吗?
最诚挚的问候,
答案 0 :(得分:1)
你的第一个问题是文字“0100”,因为它以数字0开头,以八进制而不是十进制来解释。相比之下,str(100)
会按预期返回"100"
。
其次,听起来您希望将数字填零到固定宽度,您可以使用字符串上的zfill
方法。例如,str(100).zfill(4)
会返回"0100"
。
答案 1 :(得分:1)
答案 2 :(得分:0)
在Python2中,数字文字中的前导0
表示它是八进制数。这就是0100 == 64
的原因。这也意味着0800
和0900
是语法错误
一个有趣的事情让很多人在某个时间被抓住了。
在Python3中,0100是语法错误,如果需要编写八进制文字,则必须使用0o
前缀。例如。 0o100 == 64
答案 3 :(得分:0)
您可以将两个字符串都连接起来,所以如果您想要0100
res = str(0) + str(100)
那样res = '0100'
答案 4 :(得分:-1)
不确定我是否明白这个问题......也许你正在寻找这个:
'%04o' % 0100 # 0100