lunes, 4 de julio de 2016

Python IX (formato de números)

Este es otro post dedicado a programación en Python, encontraréis todos los posts de este tipo juntos en el apartado Programación del blog. Y si queréis aprender más podéis visitar la web oficial de www.python.org

Hoy vamos a ver como dar formato a los números.




1. Formato de números


1.1 Formato de números

1.1.1 Definir el número de decimales

Para formatear un número usaremos la instrucción format, pero su uso es un poco complejo, la instrucción format va precedida del tipo de formato que deseamos aplicar al número entre { }, veamos un ejemplo

# asignamos a una variable un número de punto flotante
numero_pi=3.1416
# asignamos a la variable numero_final un número de punto flotante
# con dos decimales que formateamos con la instrucción "{:.2f}"
numero_final="{:.2f}".format(numero_pi)
# mostramos por pantalla el número final formateado
print(numero_final)


para dar formato al valor de numero_pi hemos usado lo siguiente "{:.2f}".format(numero_pi), vamos ver que significa cada elemento. En la primera parte "{:.2f}", indicamos el formato que va a tener el número, en este caso :.2 significa que queremos un valor de dos decimales, y la f significa que el valor que obtenemos del formateo es de tipo punto flotante. La segunda parte .format(numero_pi) sencillamente aplica el formato indicado. El resultado que obtenemos es '3.14'

Otro ejemplo es el siguiente, redondeando a 3 decimales

# asignamos a una variable un número de punto flotante
numero_pi=3.1416
# asignamos a la variable numero_final un número de punto flotante
# con dos decimales que formateamos con la instrucción "{:.3f}"
numero_final="{:.3f}".format(numero_pi)
# mostramos por pantalla el número final formateado
print(numero_final)

El resultado que obtendremos es '3.142'

Otro ejemplo es el siguiente, asignar 6 decimales

# asignamos a una variable un número de punto flotante
numero_pi=3.1416
# asignamos a la variable numero_final un número de punto flotante
# con dos decimales que formateamos con la instrucción "{:.6f}"
numero_final="{:.6f}".format(numero_pi)
# mostramos por pantalla el número final formateado
print(numero_final)

El resultado que obtendremos es '3.141600'

Otro ejemplo en el que vamos a ver como eliminar los decimales

# asignamos a una variable un número de punto flotante
numero_pi=3.1416
# asignamos a la variable numero_final un número de punto flotante
# sin decimales que formateamos con la instrucción "{:.0f}"
numero_final="{:.0f}".format(numero_pi)
# mostramos por pantalla el número final formateado
print(numero_final)

El resultado que obtendremos es '3'


1.1.2 Determinar la longitud de un número

Otra opción es formatear los números decimales y establecer una longitud total de caracteres para el número, como os muestro aquí

# asignamos a una variable un número de punto flotante
numero_pi=3.1416
# asignamos a la variable numero_final un número de punto flotante
# con dos decimales pero indicando que la longitud total debe tener 7 caracteres
numero_final="{:7.2f}".format(numero_pi)
# mostramos por pantalla el número final
print(numero_final)

en este caso la instrucción del formato es "{:7.2f}" donde el 7 indica el número total de caracteres que debe tener el número una vez formateado (se rellenarán con espacios a la izquierda hasta llegar a 7 caracteres), luego encontramos un punto, a partir de aquí encontramos la definición de la parte decimal del número, el número 2 indica que la parte decimal del número se formateará a dos decimales, el último carácter la f, indica que el valor obtenido una vez formateado es un número de punto flotante. El resultado que obtendremos es '   3.14'

1.1.3 Añadir ceros a la izquierda de un número

Añadir ceros a la izquierda del número. Modificando ligeramente el ejemplo anterior podemos obtener el mismo número pero en lugar de poner espacios a la izquierda pondremos ceros.

# asignamos a una variable un número de punto flotante
numero_pi=3.1416
# asignamos a la variable numero_final un número de punto flotante
# con dos decimales pero indicando que la longitud total debe tener 7 caracteres
numero_final="{:07.2f}".format(numero_pi)
# mostramos por pantalla el número final
print(numero_final)

en este caso la instrucción del formato es "{:07.2f}" donde el 07 indica que el número total de caracteres que debe tener el número una vez formateado es 7 y en este caso se rellenarán con ceros a la izquierda hasta llegar a 7 caracteres, luego encontramos un punto, a partir de aquí encontramos la definición de la parte decimal del número, el número 2 indica que la parte decimal del número se formateará a dos decimales, el último carácter la f, indica que el valor obtenido una vez formateado es un número de punto flotante. El resultado que obtendremos es '0003.14'

1.1.4 Añadir texto al formateo de un número

Aprovechando que estamos formateando un número podemos añadir un texto al resultado final, tal y como muestro a continuación

# asignamos a una variable un número de punto flotante
numero_pi=3.1416
# asignamos a la variable numero_final un número de punto flotante
# con dos decimales que formateamos con la 
# instrucción "numero_formateado={:.2f}"
numero_final="numero_formateado={:.2f}".format(numero_pi)
# mostramos por pantalla el número final formateado
print(numero_final)

El resultado que obtendremos es 'numero_formateado=3.14', un texto con el número final.