我正在尝试执行以下操作;十六进制()参数不能转换为十六进制
pin = hex("2FFF6996").replace('L', '').upper()[2:].zfill(8)
但是我收到一个错误 - 十六进制()参数不能转换为十六进制。
任何帮助,将不胜感激!
我正在尝试执行以下操作;十六进制()参数不能转换为十六进制
pin = hex("2FFF6996").replace('L', '').upper()[2:].zfill(8)
但是我收到一个错误 - 十六进制()参数不能转换为十六进制。
任何帮助,将不胜感激!
pin = hex(int("2FFF6996".replace('L', '').upper()[2:].zfill(8), 16))
>>> pin
'0xff6996'
你可以删除upper
和hex
,如果你想从数字符串将它传递给print
功能就像一个%X
参数:
>>> pin = int("2FFF6996".replace('L', '')[2:].zfill(8), 16)
>>> pin
16738710
>>> print "0x%X" % pin
0xFF6996
谢谢,这工作。但是,我将pin变量传递给另一个函数,该函数使用'%X'。不知道我做得对,因为我得到一个TypeError - '%X格式:一个数字是必需的,而不是一个str' –
@TomSothcott只留下int:'pin = int(“2FFF6996”.replace('L', '').upper()[2:] .zfill(8),16)' – ndpu
六角需要一个数,以便有效的选项有:
hex(0x2FFF6996) # hex
hex(805267862) # 10 base
hex(05777664626) # 8 base
这些都产生以下结果: “0x2fff6996”
hex
的整数转换为十六进制字符串(见docs)因此错误。
看来你已经有了一个十六进制字符串,除了领先的“0X”所以这可能就是你所需要的东西:
"2FFF6996".replace('L', '').upper()[2:].zfill(8)
怎么样'销= “2FFF6996”'? –
@alko'hex()'也可以输出'L'。在Python 2上尝试'十六进制(2 ** 32)'。 –
@JanneKarila你是对的,谢谢 – alko