Reputation: 401
a = 1
print hex(a)
The above gives me the output: 0x1
How do I get the output as 0x01
instead?
Upvotes: 6
Views: 18924
Reputation: 2481
Here is f-string variant for Python 3.6+:
a = 1
print(f"{a:0>2x}")
Explanation of string formatting:
:
: format specifier0
: fill (with 0
)>
: right-align field2
: widthx
: hex
typeSource: 6.1.3.1 Format Specification Mini-Language
Upvotes: 0
Reputation: 59210
print "0x%02x"%a
x
as a format means "print as hex".
02
means "pad with zeroes to two characters".
Upvotes: 2
Reputation: 52181
You can use format
:
>>> a = 1
>>> '{0:02x}'.format(a)
'01'
>>> '0x{0:02x}'.format(a)
'0x01'
Upvotes: 14
Reputation: 11782
Try:
print "0x%02x" % a
It's a little hairy, so let me break it down:
The first two characters, "0x" are literally printed. Python just spits them out verbatim.
The % tells python that a formatting sequence follows. The 0 tells the formatter that it should fill in any leading space with zeroes and the 2 tells it to use at least two columns to do it. The x is the end of the formatting sequence and indicates the type - hexidecimal.
If you wanted to print "0x00001", you'd use "0x%05x", etc.
Upvotes: 2