Decorating Hex function to pad zeros
Use the new .format()
string method:
>>> "{0:#0{1}x}".format(42,6)'0x002a'
Explanation:
{ # Format identifier0: # first parameter# # use "0x" prefix0 # fill with zeroes{1} # to a length of n characters (including 0x), defined by the second parameterx # hexadecimal number, using lowercase letters for a-f} # End of format identifier
If you want the letter hex digits uppercase but the prefix with a lowercase 'x', you'll need a slight workaround:
>>> '0x{0:0{1}X}'.format(42,4)'0x002A'
Starting with Python 3.6, you can also do this:
>>> value = 42>>> padding = 6>>> f"{value:#0{padding}x}"'0x002a'