Format en Python 3: Explicación y creamos unas tablas de ejemplo!

En esta entrada vamos a ver la función format en python 3.- (exclusiva a partir de esta versión), la cual nos será muy útil para ordenar los datos de salida de nuestras aplicaciones!. Suponiendo que quieres dar como salida de tu programa una tabla con los resultados ordenados. Pues con esta función se te pondrá muy fácil!!

luces

Antes pido disculpas porque he dejado de lado este blog un poquillo, verás a los programadores en estas épocas nuestras madres/ abuelas nos envían a desenredar las luces del arbolito! Diablos!!

Pero venga, les compensare con buen código!!

 

Comenzando por lo más básico veamos un ejemplo sencillo:

 

 

En este código de ejemplo solicitamos la entrada mediante input al usuario y luego brindamos una salida utilizando format para ordenar el contenido de la variable Nombre dentro de una cadena de texto.

Sintaxis de format en python 3

A partir de la versión 3 de python recordamos que debemos utilizar paréntesis en todas las funciones por lo que esta no será la excepción. La función format se encuentra dentro de los paréntesis de la función print seguida de un punto! Veamos otro ejemplo para explicar mejor la sintaxis:

 

 

Como puedes apreciar colocamos las llaves donde se mostrará el contenido de la variable y dentro de ellas un número que corresponde con el orden de la variable dentro de la función format.

En este caso la variable «nombre» obtiene el identificador {0}

La variable edad obtiene el identificador {1}

Y, la de «NombreMascota» obtiene el identificador {2}

Estos números de identificación nos permiten repetir el uso de la variable indicando cual de ellas. También podemos colocar las llaves sin identificador, pero siempre se corresponderá con el orden en el que presentemos las variables dentro de .format() 

Un clásico ejemplo del uso y practicidad de los identificadores:

 

 

Resultado: ‘abracadabra’

Abracadabra en python

No es magia, es format en python!!!!

‘a’ toma el valor de {0} y ‘b’ el valor de {1}, por lo que podemos repetirlos.

 

Otras funcionalidades de los identificadores { }

Los identificadores también nos van a permitir ordenar la salida, por ejemplo para alinear a la derecha, izquierda o centrado! en otras características. Veamos cómo hacerlo:

En este caso vamos a imprimir abracadabra utilizando una alineación:

 

 

Resultado: ‘abra cad abra’

De esta forma alineamos el primer ‘abra’ a la izquierda utilizando el símbolo ‘<‘. El ‘cad’ en el centro utilizando el símbolo ‘^’ y a la derecha el otro ‘abra’ utilizando el símbolo ‘>’ seguido de los dos puntos. El número 5 indica la cantidad de caracteres o espacios en cada elemento para su alineación. Es decir a mayor este número más espaciados se alinearan.

 

Creando y alineando tablas con formato

Estoy seguro que comprender esto te va a agradar! Vamos a crear una tabla con determinada información usando format en python y la vamos a imprimir usando el intérprete.

Tabla con números del ‘1 al 10’ mostrando el resultado de la elevación al cuadrado y al cubo:

 

 

Resultado:

Si te fijas el bucle for está creando un rango del 1 al 10 para ‘x’ y dentro de los paréntesis de format hacemos el cálculo, primero presentamos la ‘x’ sola. Lo que nos genera la primer columna con los números del 1 al 10.

La segunda ‘x * x’ genera la segunda columna con los resultados de estos números elevados al cuadrado y la tercera (x*x*x) nos genera la columna del cubo.

{3}{0:2d}{3}   {3}{1:3d}{3}   {3}{2:4d}{3}.format(x, x * x, x * x * x, ‘|’)

Analizando el código de esta manera (por colores) se nos va a hacer más comprensible. El indicador {3} en azul corresponde al carácter ‘|’ que forma las columnas.

Los numeros 0, 1, 2 en verde corresponden al orden de los elementos dentro de format (‘x’ para 0), (‘x*x’ para 1),(‘x*x*x’ para 3).

Y finalmente luego de los dos puntos encontramos el 2d, 3d, 4d que corresponden a la cantidad de caracteres para indicar la alineación de los elementos según la cantidad de cifras de los números. La letra ‘d’ se utiliza para indicar que son datos enteros, en el caso de datos de texto (string) se utiliza ‘s’

Ordenando listas dentro de tablas usando .format y .join

Si tuviésemos varias listas con diferentes datos o diccionarios y quisiéramos ordenarlos dentro de una tabla resultará muy fácil utilizando la función .join y .format

Join nos permite convertir listas / tuplas en cadenas de texto y viceversa. Y esto nos brinda una ventaja:

Las listas son mutables, las cadenas no. Por lo que si convertimos una cadena en lista podremos modificarla. Y luego volver a convertirla en cadena.

lentes de solSi ajam, y adonde voy con esto? A que podemos imprimir listas como cadenas dentro de una tabla, uniendolas utilizando .join y dándoles un formato con .format. A la vez que podemos modificar las listas y volverlas a imprimir! «eres un genio chico!!!, lastima que seas tan pobre!»

Pillate ahora este ejemplo, tenemos una lista con los alumnos y sus notas de todo el año. Queremos imprimir estos datos en una tabla para que se nos vea mas presentable. Pues lo hacemos asi, checa:

 

 

 

Resultado:

format python con listas creando una tabla

Ahora vamos a aclarar este código como siempre. Primeramente hacer hincapié en las listas que tenemos con las notas de los alumnos, las mismas respetan el orden de los elementos, como ves comienzan por el nombre y terminan con el promedio anual. Eso se debe respetar porque no indicamos el orden dentro del format.

Como ves asignamos a la variable tabla el formato de la tabla, correspondiente a una fila. Comienza con el salto de línea para que al repetir el bucle for imprima una línea por iteración de lista. Luego le damos el formato a los 6 elementos de cada listas ordenándolos en la tabla para finalmente crear un bucle for que va iterando la Lista e imprimiendo fila por fila dentro de la tabla que joineamos.

Esto es la tabla:

Tabla.format(formatodelafila(incluidoJOIN) .format(*fila) for fila in listaAlumnos))

Analiza el código por parte, y lo veras tu mismo. Porque aquí join está convirtiendo la lista en una cadena y uniendola al resto de la tabla imprimiendo la fila dentro de ella, más precisamente donde se encuentran las llaves.

A partir de aquí puedes darle una salida más «sublime» a tus programas con format en python! y que así sea!

Por supuesto puedes jugar con este código y agregarle al usuario una opción de editar la tabla o agregar un nuevo alumno simplemente a través de un input respetando el orden de los datos. Luego solo vuelves a imprimir la tabla. No lo hago aquí para no desviarme demasiado 😉

Adiooos!Esto ha sido todo, espero te haya gustado y por supuesto servido tanto como a mi ! Nos vemos en la siguiente entrada! No olvides suscribirte a mi loco blog!! Bye bye

 

 

 

 

 

Ayúdame a llegar a mas personas!
  • 9
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  • 9
  •  
  •  
  •  
  •  
  •