ValueError异常Python中使用长()时
问题描述:
所以,当我运行:ValueError异常Python中使用长()时
value = long("00000000000000020000000000000002", 16)
我得到:
ValueError: Value out of range: 36893488147419103234
我想这是因为长期不能采取这么大的十六进制数,但我我不确定。
实际上,我通过一个包含大量十六进制数字的文件迭代,但这只是我试图解析的十六进制数字之一的示例。
我试过使用lstrip()
删除一些0的,但它没有差错的错误。
我在做什么错?
答
该错误是由我试图分配值的变量而不是实际的long()函数引起的。
+3
不正确。对名称进行简单赋值不会引发值错误。 –
+0
我在提出问题之前简化了代码。实际上,我试图把这个数字分配给一个protobuff字段(不知道它是否是正确的名字),而这个数字并没有取得这样的数字。只要我将它分配给一个python var,就没有错误发生。最后我意识到我甚至不需要在那里存储数字,所以我最终并不在意...... 对不起所有的困惑 – Rikg09
无法在2.7.13上复制更长的数字。 –
FYI,在Python 3中'value = int(“00000000000000020000000000000002”,16)'正常运行('int'代替Python 2的'long')。 –
我也无法在python2.7.12上复制。你使用什么版本?你确定'ValueError'在处理的某个步骤中没有被发射吗? – mgilson