2015-09-10 2 views
1

Я портирования некоторые питона обратно .NET, и я не могу показаться, чтобы выяснить разницу между %x и %#xпитон Что разница между% х и% # х (хэш-тег шестнадцатеричное?)

print "%s: [%#x][%x] %s" % (message, self.eip, self.opcode, 
            i.get_disasm()) 

То же, что и для этой функции, кажется, это просто простая функция Hex() с добавлением 0x спереди справа, почему бы просто не использовать %x вместо этого?

def prettify_value(value): 
    if TypeOf value, (long Is int): 
     value = '%#x' % value 
    return value 

Да, я не могу найти ответ здесь: https://docs.python.org/2/library/string.html

Nevermind Я нашел это очень тонкая печать

Опция '#' действительна только для целых чисел, и только для двоичный, восьмеричный или шестнадцатеричный. Если он присутствует, он указывает, что выход будет иметь префикс '0b', '0o' или '0x', соответственно.

+2

Загадочное обоснование для downvote. Потому что ОП нашел ответ и поделился им? Хотя, по общему признанию, возможно, он попытался в командной строке или такой, прежде чем спрашивать о SO, было бы лучше. –

+2

Yah независимо от того, что я думал об удалении вопроса, но meh нет причин, может быть, какой-то парень, как я, который тоже не может понять это, найдет это полезным из поиска google – SSpoke

ответ

1

Опция '#' действительна только для целых чисел и только для двоичного, восьмеричного или шестнадцатеричного вывода. Если он присутствует, он указывает, что выход будет иметь префикс '0b', '0o' или '0x', соответственно.