【发布时间】:2021-03-05 03:35:29
【问题描述】:
我正在尝试将this library 从 Javascript 移植到 Python,但在尝试将十六进制字符串转换为整数时不断收到一个奇怪的错误。它适用于短字符串,但由于某种原因会阻塞较大的字符串:
ValueError: int() 以 16 为基数的无效文字: '14fdbc5ade9e3d4097f421fe7b4b54ad05883d589c3b3f6648b5e0ea2b64b359158087b793b859a4c51af0fd8c1edb7a92b8d5843c1a2d659929357c7e1869784435d6dcfd8d29b619194333b38655493eb4eb3deeffbf339e91c7c0f6113b4bb6672f49' P>
代码如下所示:
def stretch(value):
hexadecimal = hex(value)[2:]
buffer = hexadecimal
while True:
buffer += record_separator + hexadecimal
if len(buffer) >= minimum_digits:
break
return int(buffer, 16)
【问题讨论】:
-
如果只想将字符串转换为十进制,则使用 value = int(string, 16)。 Python 3 对其整数值没有限制。您的字符串结果546755182137531943293891170863886409257177002102958031106970218913938945216495276608761007929774380907079475078176395384371438944791022503587328767282546555465705414556027853888426781796298321719051075009856267471199860627126795651319803721 SPAN>
-
好的,那么这可能只是一个兼容性问题。调用'python --version',我得到'Python 2.7.17'。
-
是的,错误的版本。在 Python 3 上工作得很好。如果你想把它作为答案发布,我很乐意接受它已解决。感谢您的及时回复。
-
不客气。将其发布为答案。
标签: python type-conversion integer hex