Судя по этому комментарию:
Не могли бы вы дать
пример его использования? я пытаюсь
преобразовать это 0,554 в гекс с помощью
float.hex (значение)? и как я могу написать
это как (\ x30 \ x30 \ x35 \ x35)? - Иордания2010
1 час назад
что вам действительно нужно, так это шестнадцатеричное представление кодов ASCII этих числовых символов, а не фактическое число с плавающей точкой, представленное в шестнадцатеричном виде.
"5" = 53 (основание 10) = 0x35 (основание 16)
Вы можете использовать ord (), чтобы получить код ASCII для каждого символа, например так:
>>> [ ord(char) for char in "0.554" ]
[48, 46, 53, 53, 52]
Хотите ли вы удобочитаемое представление? hex () даст вам один, но он не в том формате, который вы просили:
>>> [ hex(ord(char)) for char in "0.554" ]
['0x30', '0x2e', '0x35', '0x35', '0x34']
# 0 . 5 5 4
Вместо этого вы можете использовать подстановку строк и соответствующие средства форматирования
res = "".join( [ "\\x%02X" % ord(char) for char in "0.554" ] )
>>> print res
\x30\x2E\x35\x35\x34
Но если вы хотите сериализовать данные, рассмотрите возможность использования модуля struct
для упаковки данных в буферы.
отредактировано для ответа на второй комментарий jordan2010
Вот быстрое дополнение, чтобы дополнить число начальными нулями.
>>> padded_integer_str = "%04d" % 5
>>> print padded_integer_str
0005
>>> res = "".join( [ "\\x%02X" % ord(char) for char in padded_integer_str] )
>>> print res
\x30\x30\x30\x35
См. http://docs.python.org/library/stdtypes.html#string-formatting для объяснения о форматировщиках строк