Salida por pantalla: la función print()

En Informática, la "salida" de un programa son los datos que el programa proporciona al exterior. Aunque en los incios de la informática la salida más habitual era una impresora, hace muchos años que el dispositivo de salida más habitual es la pantalla del ordenador.

Salida por pantalla en IDLE

Para que IDLE muestre el valor de una variable, basta con escribir su nombre.

>>> a = 2
>>> a
2

También se puede conocer el valor de varias variables a la vez escribiéndolas entre comas (IDLE las mostrará entre paréntesis), como muestra el siguiente ejemplo:

>>> a = b = 2
>>> c = "pepe"
>>> a
2
>>> c, b
('pepe', 2)

La función print()

En los programa, para mostrar texto o variables hay que utilizar la función print().

La función print() permite mostrar texto en pantalla. El texto a mostrar se escribe como argumento de la función:

print("Hola")
Hola

Las cadenas se pueden delimitar tanto por comillas dobles (") como por comillas simples (').

print('Hola')
Hola

Nota: En estos apuntes se utilizan normalmente comillas dobles.


La función print() admite varios argumentos seguidos. En el programa, los argumentos deben separarse por comas. Los argumentos se muestran en el mismo orden y en la misma línea, separados por espacios:

print("Hola", "Adios")
Hola Adios

Al final de cada print(), Python añade automáticamente un salto de línea:

print("Hola")
print("Adios")
Hola
Adios

Para generar una línea en blanco, se puede escribir una orden print() sin argumentos.

print("Hola")
print()
print("Adios")
Hola

Adios

Si no se quiere que Python añada un salto de línea al final de un print(), se debe añadir al final el argumento end="":

print("Hola", end="")
print("Adios")
HolaAdios

En el ejemplo anterior, las dos cadenas se muestran pegadas. Si se quieren separar los argumentos en la salida, hay que incluir los espacios deseados (bien en la cadena, bien en el argumento end):

print("Hola. ", end="")
print("Adios")
Hola. Adios
print("Hola.", end=" ")
print("Adios")
Hola. Adios

Como las comillas indican el principio y el final de una cadena, si se escriben comillas dentro de comillas se produce un error de sintaxis.

print("Un tipo le dice a otro: "¿Cómo estás?"")
Aviso: Error de sintaxis (cadena incorrecta)
print('Un tipo le dice a otro: '¿Cómo estás?'')
Aviso: Error de sintaxis (cadena incorrecta)

Nota: Si nos fijamos en la forma como IDLE colorea la instrucción, podemos darnos cuenta de que hay un error en ella. Como las cadenas empiezan y acaban con cada comilla, IDLE identifica dos cadenas y un texto en medio que no sabe lo que es.

Para incluir comillas dentro de comillas, se puede escribir una contrabarra (\) antes de la comilla para que Python reconozca la comilla como carácter, no como delimitador de la cadena:

print("Un tipo le dice a otro: \"¿Cómo estás?\"")
print('Y el otro le contesta: \'¡Pues anda que tú!\'')
Un tipo le dice a otro: "¿Cómo estás?"
Y el otro le contesta: '¡Pues anda que tú!'

O escribir comillas distintas a las utilizadas como delimitador de la cadena:

print("Un tipo le dice a otro: '¿Cómo estás?'")
print('Y el otro le contesta: "¡Pues anda que tú!"')
Un tipo le dice a otro: '¿Cómo estás?'
Y el otro le contesta: "¡Pues anda que tú!"

La función print() permite incluir variables o expresiones como argmento, lo que nos permite combinar texto y variables:

nombre = "Pepe"
edad = 25
print("Me llamo", nombre, "y tengo", edad, "años.")
Me llamo Pepe y tengo 25 años.
semanas = 4
print("En", semanas , "semanas hay", 7 * semanas, "días.")
En 4 semanas hay 28 días.

Se puede forzar que las variables se escriban como enteros o decimales, utilizando las funciones int() o float(), respectivamente.

>>> print(int(2.9))
2
>>> print(float(2))
2.0

La función print() muestra los argumentos separados por espacios, lo que a veces no es conveniente . En el ejemplo siguiente el signo de exclamación se muestra separado de la palabra.

nombre = "Pepe"
print("¡Hola,", nombre, "!")
¡Hola, Pepe !

Para eliminar ese espacio, se puede reducir el número de argumentos, concatenando texto y variables con el operador suma (+):

nombre = "Pepe"
print("¡Hola,", nombre + "!")
print("¡Hola, " + nombre + "!")
¡Hola, Pepe!
¡Hola, Pepe!

Pero hay que tener cuidado, porque no se pueden concatenar cadenas y números con el operador suma (+):

fecha = 2017
print("¡Feliz " + fecha + "!")
Traceback (most recent call last):
  File "ejemplo.py", line 2, in <module>
    print("¡Feliz " + fecha + "!")
TypeError: Can't convert 'int' object to str
implicitly

En este caso, hay que convertir los números a cadenas con la función str() antes de concatenarlos:

fecha = 2017
print("¡Feliz", fecha, "!")
print("¡Feliz", str(fecha) + "!")
print("¡Feliz " + str(fecha) + "!")
¡Feliz 2017 !
¡Feliz 2017!
¡Feliz 2017!

Cadenas "f"

En Python 3.6 se ha añadido (PEP 498) una nueva notación para cadenas llamada cadenas "f", que simplifica la inserción de variables y expresiones en las cadenas. Una cadena "f" contiene variables y expresiones entre llaves ({}) que se sustituyen directamente por su valor. Las cadenas "f" se reconocen porque comienzan por una letra f antes de las comillas de apertura.

nombre = "Pepe"
edad = 25
print(f"Me llamo {nombre} y tengo {edad} años.")
Me llamo Pepe y tengo 25 años.
semanas = 4
print(f"En {semanas} semanas hay {7 * semanas} días.")
En 4 semanas hay 28 días.

Esta notación no añade espacios que en la notación "clásica" aparecían al incluir varios argumentos separados por comas:

fecha = 2017
print("¡Feliz", fecha, "!")
print("¡Feliz", str(fecha) + "!")
print("¡Feliz " + str(fecha) + "!")
print(f"¡Feliz {fecha}!")
¡Feliz 2017 !
¡Feliz 2017!
¡Feliz 2017!
¡Feliz 2017!

Si no se escribe la letra f antes de la cadena, Python no sustituye los valores de las variables ni calcula las expresiones.

nombre = "Pepe"
edad = 25
print("Me llamo {nombre} y tengo {edad} años.")
Me llamo {nombre} y tengo {edad} años.

Si se quieren escribir los carácteres { o } se deben escribir duplicados.

nombre = "Pepe"
edad = 25
print(f"Si escribe {{nombre}} se escribirá el valor de la variable nombre, "
      f"en este caso {nombre}.")
Si escribe {nombre} se escribirá el valor de la variable nombre, en este caso Pepe.

Las cadenas "f" permiten dar formato a las variables, siguiendo la sintaxis del método str.format()

En construcciónPor escribir ejemplos de formato.