Как использовать hex () без 0x в Python?


The hex() функция в python, ставит ведущие символы 0x перед номером. Есть ли в любом случае сказать ему не ставить их? Так что 0xfa230 будет fa230.

код

import fileinput
f = open('hexa', 'w')
for line in fileinput.input(['pattern0.txt']):
   f.write(hex(int(line)))
   f.write('\n')
5   51   2013-05-07 12:28:37

5 ответов:

>>> format(3735928559, 'x')
'deadbeef'

используйте этот код:

'{:x}'.format(int(line))

это позволяет указать количество цифр тоже:

'{:06x}'.format(123)
# '00007b'

для Python 2.6 использовать

'{0:x}'.format(int(line))

или

'{0:06x}'.format(int(line))

вы можете просто написать

hex(x)[2:]

чтобы удалить первые два символа.

форматирование строк в старом стиле:

In [3]: "%02x" % 127
Out[3]: '7f'

новый стиль

In [7]: '{:x}'.format(127)
Out[7]: '7f'

использование заглавных букв в качестве символов формата дает верхний регистр шестнадцатеричный

In [8]: '{:X}'.format(127)
Out[8]: '7F'

Docs здесь.

Python 3.6+:

>>> i = 240
>>> f'{i:02x}'
'f0'