我想创建字典,其值以0开头。但是,在我创建字典值后有所改变。我做错了什么?
>>> sample={'first_value':0123456}
>>> sample
{'first_value': 42798}
答案 0 :(得分:6)
领先的零告诉Python将其解释为八进制数。
答案 1 :(得分:2)
以0
开头的数字被视为octal。您需要将数字临时包装在一个字符串中,或者在使用前将123456
格式设置为前导零;两次都无法获得带前导零的整数(只是一个数字字符串)。
选项1:
>>> sample={ 'first_value' : '0123456' }
>>> sample['first_value']
'0123456'
选项2:
>>> sample={ 'first_value' : 123456 }
>>> '{0:07}'.format(sample['first_value'])
'0123456'
答案 2 :(得分:1)
前导零使值为octal number。
答案 3 :(得分:0)
当你写0123456时,它被解释为base-8,即42798十进制