New submission from Pete Wicken <petewic...@gmail.com>:

When formatting an integer as a hexadecimal value, the '#' alternate form 
modifier inserts a preceding '0x'. 
If this is used in combination with padding modifiers, the '0x' is counted as 
part of the overall width, which does not feel like the natural behaviour as 
extra calculation is required to get the correct post '0x' precision.

Example:

In [7]: f'{num:04x}'
Out[7]: '0800'

In [8]: f'{num:#04x}'
Out[8]: '0x800'

To get the hexadecimal representation padded to 4 digits, you have to account 
for the preceding 0x:

In [10]: f'{num:#06x}'
Out[10]: '0x0800'

----------
messages: 355767
nosy: Wicken
priority: normal
severity: normal
status: open
title: String format for hexadecimal notation breaks padding with alternative 
form
type: behavior
versions: Python 3.7, Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue38657>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to