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 inicios 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 el entorno interactivo

En un entorno interactivo (por ejemplo, en IDLE), para que python nos 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 (el entorno interactivo 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 programas, para que python nos muestre 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", "Adiós")
Hola Adiós

Cuando se trata de dos cadenas seguidas, se puede no escribir comas entre ellas, pero las cadenas se escribirán seguidas, sin espacio en blanco entre ellas:

print("Hola" "Adiós")
HolaAdios

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

print("Hola")
print("Adiós")
Hola
Adiós

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

print("Hola")
print()
print("Adiós")
Hola

Adiós

Si se quiere que Python no 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("Adiós")
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("Adiós")
Hola. Adiós
print("Hola.", end=" ")
print("Adiós")
Hola. Adiós

El valor del parámetro end puede ser una variable:

texto = " y "
print("Hola", end=texto)
print("Adiós")
Hola y Adiós

El valor del parámetro end puede ser una cadena f:

texto = "y"
print("Hola", end=f" {texto} ")
print("Adiós")
Hola y Adiós

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?"")
File "prueba.py", line 1
    print("Un tipo le dice a otro: "¿Cómo estás?"")
                                        ^
SyntaxError: invalid character in identifier

En IDLE se muestra una ventana indicando el error:

Aviso: Error de sintaxis (cadena incorrecta)

print('Un tipo le dice a otro: '¿Cómo estás?'')
File "prueba.py", line 1
    print('Un tipo le dice a otro: '¿Cómo estás?'')
                                        ^
SyntaxError: invalid character in identifier

En IDLE se muestra una ventana indicando el error:

Aviso: Error de sintaxis (cadena incorrecta)

Nota: Si nos fijamos en la forma como el editor colorea la instrucción, podemos darnos cuenta de que hay un error en ella. Como las cadenas empiezan y acaban con cada comilla, el editor 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 argumentos, 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.

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 !

Antes de Python 3.6 estas situaciones se podían resolver de una forma algo engorrosa (que se comenta en la lección de temas obsoletos), pero a partir de Python 3.6 se recomienda utilizar las cadenas "f".

nombre = "Pepe"
print(f"¡Hola, {nombre}!")
¡Hola, Pepe!

En general, las cadenas "f" permiten combinar, cadenas, variables y expresiones de una forma más clara:

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.