Python hex()参数无法转换为十六进制
我正在努力做到以下几点:Python hex()参数无法转换为十六进制,python,hex,Python,Hex,我正在努力做到以下几点: pin = hex("2FFF6996").replace('L', '').upper()[2:].zfill(8) 但是,我得到一个错误-hex()参数无法转换为hex 任何帮助都将不胜感激 Hex需要一个数字,因此有效选项包括: hex(0x2FFF6996) # hex hex(805267862) # 10 base hex(05777664626) # 8 base 这些都会产生以下结果: “0x2FF6996”将整数转换为十六进制字符串(请参见),从而
pin = hex("2FFF6996").replace('L', '').upper()[2:].zfill(8)
但是,我得到一个错误-hex()参数无法转换为hex
任何帮助都将不胜感激 Hex需要一个数字,因此有效选项包括:
hex(0x2FFF6996) # hex
hex(805267862) # 10 base
hex(05777664626) # 8 base
这些都会产生以下结果:
“0x2FF6996”将整数转换为十六进制字符串(请参见),从而产生错误 除了前导的“0x”之外,您似乎已经有了一个十六进制字符串,因此这可以满足您的需要:
"2FFF6996".replace('L', '').upper()[2:].zfill(8)
如果希望字符串中的数字像%X
参数一样传递给打印
函数,则可以删除上限
和十六进制
:
>>> pin = int("2FFF6996".replace('L', '')[2:].zfill(8), 16)
>>> pin
16738710
>>> print "0x%X" % pin
0xFF6996
怎么样
pin=“2ff6996”
?@alkohex()
也可以输出L
。在Python 2上尝试hex(2**32)
。@JanneKarila你说得对,thanksIs“2ff6996”
实际代码中的一个变量?您应该能够处理哪些类型?您实际想要实现什么?谢谢,这很有效。但是,我正在将pin变量传递给另一个函数,该函数接受%X
。不确定我是否做对了,因为我得到了一个TypeError-%X格式:需要一个数字,而不是str
@TomSothcott只保留int:pin=int(“2ff6996”。replace('L','')。upper()[2::.zfill(8),16)
>>> pin = int("2FFF6996".replace('L', '')[2:].zfill(8), 16)
>>> pin
16738710
>>> print "0x%X" % pin
0xFF6996