Métodos para imprimir en Python 3

Lo primero que se escribe de código en Python es el típico:

print("Hello World!")

-------

Output: Hello World!

Este comando, que da como resultado “Hello World!”, supone la impresión en pantalla de la cadena de texto “Hello World!”, recogida entre comillas.

Para textos tan pequeños y simples no tiene sentido utilizar métodos de impresión más complejos, pero cuando entran en juego variables y la extensión de las cadenas aumenta, se hace de vital importancia el uso mejores métodos.

A través de esta pequeña guía vamos a revisar las distintas posibilidades, desde la más simple a la más avanzada.

Antes de empezar hemos de reflexionar sobre qué buscamos cuando utilizamos diferentes métodos para imprimir (“print”) cadenas de textos con variables interpuestas. Por un lado se busca un método ágil para el que escribe, que esté exento de complicados mecanismos. Por otro lado es prioritario que sea cómodo de leer para tanto el mismo que escribe, evitando fallos, como para el que revisa el código, no perdiendo demasiado tiempo en estos puntos. Aún así, se han dado diversos métodos a lo largo del tiempo que han buscado facilitar o bien la agilidad para el iniciante como la legibilidad para el experto. Veremos estos métodos a continuación:

1. Uso básico

El primer uso supondría una concatenación de textos y variables usando el símbolo “+”, así como la conversión de cada variable usada en string a través del método “str()”, como en el siguiente ejemplo:

nombre = "María"
edad = 24

print(str(nombre) + " tiene " + str(edad) + " años.")

-------

Output: María tiene 24 años.
2. “Print” con el símbolo “%”:

Una opción más avanzada es la que utiliza el símbolo “%” como elemento a sustituir con las variables entre paréntesis. Para ello, una vez asignadas las variables, procederemos a colocar la combinación de símbolos “%s” allá donde queramos que aparezca el valor de la variable. Utilizaremos tantas veces esta variable como variables introduzcamos entre paréntesis. Dicho paréntesis irá colocado tras el entrecomillado de la cadena de texto que queramos imprimir y separado de la misma por el símbolo %. A continuación mostramos un ejemplo:

nombre = "María"
edad = 24

print("%s tiene %s años." % (nombre, edad))

-------

Output: María tiene 24 años.
3. “Print” con el str.format():

Este método es muy similar al anterior pero en vez de usar el símbolo “%s” se utilizan las claves “{}” para referir a la ubicación de la variable. Por otro lado, en vez de separar la cadena del paréntesis con el símbolo “%” se utiliza justo después de la cadena la estructura .format(), introduciendo dentro de este último paréntesis las variables a utilizar en el orden y número adecuado. Podemos ver nuestro ejemplo con este método a continuación:

nombre = "María"
edad = 24

print("{} tiene {} años.".format(nombre, edad))

-------

Output: María tiene 24 años.

Aun así, esta solución sigue sin ser todo lo legible que podría ya que si la cadena de texto se vuelve muy extensa es complicado seguir la pista de qué combinación de claves hace referencia a cada variable. Por ello, una solución puede ser la que aparece bajo estas líneas, en donde entre claves aparece la variable que queramos usar (en este caso tanto el nombre de la referencia como el de la variable es el mismo, pero podría ser diferente).

nombre = "María"
edad = 24

print("{nombre} tiene {edad} años.".format(nombre=nombre, edad=edad))

-------

Output: María tiene 24 años.

Finalmente, se debe aclarar entre paréntesis la relación entre la referencia y la variable. Con todo, la lectura de este código es mucho más clara y cómoda, pudiendo crear frases con mayor sentido. Aun así, la parte final, la aclaración en el paréntesis sigue siendo un poco redundante. ¿Habría alguna forma de evitarlo?

4. “Print” con el método f-Strings:

Este método es mi favorito y el que recomiendo. Aúna todo lo bueno de los métodos anteriores. Supone un menor esfuerzo a la vez que mayor claridad.

nombre = "María"
edad = 24

print(f"{nombre} tiene {edad} años.")

-------

Output: María tiene 24 años.

Como se puede observar, bastará colocar una “f” delante del string y utilizar las claves con los nombres de las variables. No será necesario (como sí lo era en los casos anteriores) indicar nada tras el string. Reduce la cantidad de código, lo que siempre será una menor posibilidad de error, así como que mantiene la claridad del método anterior. Definitivamente este método es el mejor hasta el momento.

COMPARATIVA

nombre = "María"
edad = 24

# Método básico: 
print(str(nombre) + " tiene " + str(edad) + " años.")

# Método con "%":
print("%s tiene %s años." % (nombre, edad))

# Método str.format():

print("{} tiene {} años.".format(nombre, edad))
print("{nombre} tiene {edad} años.".format(nombre=nombre, edad=edad))

# Método f-Strings:
print(f"{nombre} tiene {edad} años.")

-------

Output: María tiene 24 años.
Output: María tiene 24 años.
Output: María tiene 24 años.
Output: María tiene 24 años.
Output: María tiene 24 años.

Como se puede ver en las líneas superiores, los métodos más reducidos en extensión son el método con “%” y el método f-Strings pero este último supone una mejora en la lectura. El resto de métodos supone mayor texto para un mismo resultado lo que a la larga es altamente contraproducente, tanto para escribir código como para revisar código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Francisco Javier Luengo Gutiérrez