separador resultado mostrar miles mas funcion formateo delimitar definir decimales con cantidad python string string-formatting number-formatting

resultado - ¿Cómo formateo un número con un número variable de dígitos en Python?



resultado con dos decimales python (6)

Digamos que quería mostrar el número 123 con un número variable de ceros rellenos en el frente.

Por ejemplo, si quisiera mostrarlo en 5 dígitos tendría dígitos = 5 dándome:

00123

Si quisiera mostrarlo en 6 dígitos, tendría dígitos = 6 dando:

000123

¿Cómo haría esto en Python?


Con la introducción de literales de cadena con formato ("f-strings" para abreviar) en Python 3.6, ahora es posible acceder a variables previamente definidas con una sintaxis más breve:

>>> name = "Fred" >>> f"He said his name is {name}." ''He said his name is Fred.''

Los ejemplos dados por John La Rooy se pueden escribir como

In [1]: num=123 ...: fill=''0'' ...: width=6 ...: f''{num:{fill}{width}}'' Out[1]: ''000123''


Hay un método de cadena llamado zfill:

>>> ''12344''.zfill(10) 0000012344

Rellenará el lado izquierdo de la cadena con ceros para hacer la longitud de la cadena N (10 en este caso).


Si lo está utilizando en una cadena formateada con el método format() que se prefiere sobre el formato ''''% format anterior

>>> ''One hundred and twenty three with three leading zeros {0:06}.''.format(123) ''One hundred and twenty three with three leading zeros 000123.''

Ver
http://docs.python.org/library/stdtypes.html#str.format
http://docs.python.org/library/string.html#formatstrings

Aquí hay un ejemplo con ancho variable

>>> ''{num:0{width}}''.format(num=123, width=6) ''000123''

Incluso puede especificar el carácter de relleno como una variable

>>> ''{num:{fill}{width}}''.format(num=123, fill=''0'', width=6) ''000123''


Usar formato de cadena

print ''%(#)03d'' % {''#'': 2} 002 print ''%(#)06d'' % {''#'': 123} 000123

Más información aquí: texto del enlace


print "%03d" % (43)

Huellas dactilares

043


''%0*d'' % (5, 123)