我正在开发一个Python小方法,它需要从另一个文件中读取代表键和值的字典。
但我似乎遇到了我发送的数值表示的问题。例如,我的字典中的某些键如下所示:
id_dict = {
'val_a': 0x0000,
'val_b': 0x1000
}
但我注意到,当我尝试遍历字典时,十六进制值被替换为十进制值。即使在原作中id_dict.py
,字典所在的位置,数字会自动从十六进制转换。
这是我尝试迭代的结果:
for k,v in id_dict.items():
print(k,v)
#Results
val_a 0
val_b 4096
有人可以告诉我为什么这些值以十进制形式表示,而不是以它们最初存储的十六进制形式表示?
如果有一种方法可以停止自动转换,那也很好理解!
有人可以告诉我为什么这些值以十进制形式表示,而不是以它们最初存储的十六进制形式表示?
它们最初并不是以十六进制存储的。 Python不跟踪任何有关base的信息;无论你打字0x1000
or 4096
在源代码中,它是相同的数字,Python 以相同的方式存储它。
当Python打印一个数字时,它必须选择一个基数来显示它,默认值始终是十进制。如果您想以不同的方式打印它,则需要指定不同的方式来执行字符串转换,例如hex
功能:
>>> print 0x1000
4096
>>> print hex(0x1000)
0x1000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)