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”
?@alko
hex()
也可以输出
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