Re: Is there a better way? [combining f-string, thousands separator, right align]

Liste des GroupesRevenir à cl python 
Sujet : Re: Is there a better way? [combining f-string, thousands separator, right align]
De : PythonList (at) *nospam* DancesWithMice.info (dn)
Groupes : comp.lang.python
Date : 26. Aug 2024, 09:42:32
Autres entêtes
Organisation : DWM
Message-ID : <mailman.8.1724661765.2917.python-list@python.org>
References : 1 2
User-Agent : Mozilla Thunderbird
On 26/08/24 03:12, Gilmeh Serda via Python-list wrote:
Subject explains it, or ask.
 This is a bloody mess:
 
s = "123456789" # arrives as str
f"{f'{int(s):,}': >20}"
'         123,456,789'
With recent improvements to the expressions within F-strings, we can separate the string from the format required. (reminiscent of FORTRAN which had both WRITE and FORMAT statements, or for that matter HTML which states the 'what' and CSS the 'how')
Given that the int() instance-creation has a higher likelihood of data-error, it is recommended that it be a separate operation for ease of fault-finding - indeed some will want to wrap it with try...except.
 >>> s = "123456789" # arrives as str
 >>> s_int = int( s )  # makes the transformation obvious and distinct
 >>> s_format = ">20,"  # define how the value should be presented
 >>> F"{s_int:{s_format}}"
'         123,456,789'
Further, some of us don't like 'magic-constants', hence (previously):
 >>> S_FIELD_WIDTH = 20
 >>> s_format = F">{S_FIELD_WIDTH},"
and if we really want to go over-board:
 >>> RIGHT_JUSTIFIED = ">"
 >>> THOUSANDS_SEPARATOR = ","
 >>> s_format = F"{RIGHT_JUSTIFIED}{S_FIELD_WIDTH}{THOUSANDS_SEPARATOR}"
or (better) because right-justification is the default for numbers:
 >>> s_format = F"{S_FIELD_WIDTH}{THOUSANDS_SEPARATOR}"
To the extreme that if your user keeps fiddling with presentations (none ever do, do they?), all settings to do with s_format could be added to a config/environment file, and thus be even further separated from program-logic!
--
Regards,
=dn

Date Sujet#  Auteur
26 Aug 24 * Re: Is there a better way? [combining f-string, thousands separator, right align]2dn
26 Aug 24 `- Re: Is there a better way? [combining f-string, thousands separator, right align]1Stefan Ram

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal