преобразование string type в hex type

требуется помощь, у меня есть строка вида 0x9daffbf...

она ранее распознавалась как hex, то есть кавычки ей не требовались, суть моего скрипта в том, что генерируется часть hex строки после 0х, но на выходе получаю string. как преобразовать в hex, чтобы данная строка спокойно работал с методами для hex

z1 = '0x9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54'

print(int(z1, 16))

Ответы (1 шт):

Автор решения: CrazyElf

Непонятна суть проблемы. Всё прекрасно работает и с 0x впереди и без него:

z1 = '0x9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54'
z2 = int(z1, 16)
print(z2)
print(hex(z2))
print(hex(z2) == z1)

Вывод:

71324054358934732119009127994312035692819413935602478704025180570346368417364
0x9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54
True

Без 0x впереди:

z1 = '9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54'
z2 = int(z1, 16)
print(z2)
print(hex(z2))
print(hex(z2) == '0x'+z1)

Вывод:

71324054358934732119009127994312035692819413935602478704025180570346368417364
0x9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54
True

И нет никакого "hex type", hex() просто делает строку с 16-ричным представлением числа и 0x перед ней.

→ Ссылка