Saltar a contenido

La función print()

La función print() en Python es una función incorporada o predefinida que se emplea para mostrar (es decir, imprimir) representaciones textuales de uno o más objetos en la salida estándar, comúnmente la pantalla de la terminal o consola.

Esta función es esencial para la interacción con el usuario, el depurado de código y la visualización de resultados.

Los objetos que print() puede manejar incluyen, pero no se limitan a, cadenas de caracteres (strings), números enteros o flotantes (integers, floats), listas, diccionarios y muchos otros tipos de datos en Python.

La función convierte estos objetos a su representación en cadena de caracteres (strings) antes de mostrarlos.

Además, print() admite argumentos adicionales que permiten personalizar su comportamiento, como sep para especificar el separador entre los objetos impresos, y end para especificar el caracter final después de la impresión.

Recuerda que la mayoría de las funciones toman argumentos que influyen en su comportamiento, sólo hay que saber cuáles son esos argumentos.

Es importante saber que tanto sep como end son opcionales y tienen valores predeterminados. Es decir que sep es opcional con valor predeterminado de un espacio en blanco " " y end es opcional con valor predeterminado de un salto de línea "\n".

Más adelante veremos que significa esto del salto de línea y como se ejecuta.

Sintaxis

Si consultamos la documentación oficial de Python sobre la función print(), encontraremos que su sintaxis es la siguiente:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Donde:

  • objects es el objeto o los objetos que se desean imprimir (por ahora los llamaremos argumentos).
  • sep es el separador entre los objetos impresos. Por defecto es un espacio en blanco " ".
  • end es el caracter final después de la impresión. Por defecto es un salto de línea "\n".
  • file es el objeto de archivo donde se imprimirá. Por defecto es la salida estándar sys.stdout.
  • flush es un valor booleano que indica si se debe forzar el vaciado del búfer. Por defecto es False.
  • * indica que objects es una secuencia de argumentos.
  • sys es un módulo que proporciona acceso a algunas variables utilizadas o mantenidas por el intérprete y a funciones que interactúan fuertemente con el intérprete.
  • stdout es la salida estándar del sistema operativo.
  • False es un valor booleano que indica que no se debe forzar el vaciado del búfer.

Como esta sintaxis es bastante críptica y toda su terminología puede resultar confusa, no te preocupes por entenderla en su totalidad en este momento.

Solo debes saber que print() es una función que recibe argumentos; que un asterisco (estrella o star en inglés) seguido de la palabra "objetos" (objects) significa que la función puede aceptar cualquier cantidad de argumentos; que estos argumentos pueden ser separados por un espacio en blanco o por un salto de línea, dependiendo de cómo se llame a la función.

Veamos, entonces, cual es la sintaxis simplificada de la función print():

Sintaxis de la función print()

Si analizamos la sintaxis, ¿qué resultado producirá la siguiente instrucción?

Python
print()
Haz clic aquí para ver la solución propuesta
Terminal (Entrada/Salida)
 
_

¡Por supuesto! Imprime un salto de línea.

El guión bajo representa la ubicación del cursor en la terminal del sistema operativo. Este se encontraba en la línea 1 al momento de ejecutar la función. Y luego de la ejecución de la función, bajó a la línea 2.

Esto ocurre porque el parámetro end="\n", por defecto, de la función print(), aunque no esté escrito se encuentra presente implícitamente e imprime un salto de línea (new line) al finalizar la ejecución de la función.

Recuerda este dato para el resto de la ejercitación. ¡Es importante!

Hola, Mundo! - Parte 2

hola_mundo.py

Si volvemos a nuestro primer programa, el argumento que le pasamos a la función print() es la cadena de caracteres "Hola, Mundo!". Si analizamos esto, por supuesto que nos daremos cuenta que print(), no imprime ninguna cadena de caracteres predeterminada si no que imprime lo que le pasemos por argumento.

Como podemos observar, colocamos la frase Hola, Mundo! adentro de los paréntesis. print() es una función y como en toda función, dentro de los paréntesis debemos colocar los argumentos de funcionamiento.

En el caso de print(), el argumento es la cadena de caracteres qué queremos que se muestre por pantalla. Así, a la frase "Hola, Mundo!" la escribimos entre comillas.

¡Para recordar!

Siempre que queramos que se muestre un texto literal, este debe ir entre comillas simples o dobles.

La elección del tipo de comillas es indistinta, pero siempre teniendo en cuenta que no pueden mezclarse.

Uso correcto de las comillas en una cadena de caracteres

"Hola, Mundo!"
'Hola, Mundo!'
`Hola, Mundo!`

Uso incorrecto de las comillas en una cadena de caracteres

"Hola, Mundo!'
'Hola, Mundo!`
`Hola, Mundo!"

Sin embargo, cuando se ejecute este código, no veremos esas comillas en la salida, sólo veremos el texto deseado. Python imprimirá Hola, Mundo! en la salida estándar:

Terminal (Entrada/Salida)
Hola, Mundo!

Delimitador o separador de argumentos/parámetros

Hemos visto cómo imprimir una cadena de caracteres en pantalla. Pero ¿qué pasa si queremos imprimir más de una cadena de caracteres?

Podemos partir la cadena de caracteres en varias cadenas de caracteres e imprimirlas en serie, una a continuación de otra:

Python
print("Hola,", "Mundo!")

¿Cómo es que la función print() sabe que debe imprimir dos cadenas de caracteres en lugar de una?

La respuesta es que la coma que se encuentra entre las dos cadenas de caracteres es el delimitador de argumentos o separador de argumentos en la llamada a la función o el delimitador de parámetros o separador de parámetros en la definición de la función. Esta terminología, por el momento sonará extraña y complicada pero no te preocupes por ahora por ello. Solo debes saber que este delimitador se utiliza para distinguir entre los diferentes argumentos que se pasan a la función y para distinguir entre los diferentes parámetros que tendrá una función para recibir dichos argumentos.

Por lo tanto, la función print() recibe dos argumentos: la cadena de caracteres "Hola," y la cadena de caracteres "Mundo!". La función imprime ambos argumentos en la salida estándar, separados por un espacio en blanco:

Terminal (Entrada/Salida)
Hola, Mundo!
_

Impresión de varios argumentos con la misma función print(). La coma (delimitador de argumentos) funciona como separador y, durante la impresión en pantalla, es reemplazada por el valor almacenado en el parámetro opcional sep o con su valor predeterminado de un espacio en blanco, en su defecto.

¡Para recordar!

No te generes confusión con los términos argumentos y parámetros:

  • Una función puede tener parámetros que recibirán a los argumentos que la llamada a dicha función le pase.

Por ejemplo:

Python
def suma(a, b):
    return a + b

print(suma(3, 4))

La coma entre a y b es el delimitador de parámetros. Indica que la función suma() tiene dos parámetros, a y b, que recibirán, en este ejemplo, los valores 3 y 4 pasados como argumentos en la llamada a suma(). suma() retornará el resultado de la suma de ambos valores, y ese resultado será impreso en pantalla por la función print().

Terminal (Entrada/Salida)
7
_

Por el momento no te preocupes por la definición de funciones. Solo quiero que entiendas la diferencia entre argumentos y parámetros. Ya estudiaremos las funciones en detalle más adelante.

Eliminar el espacio impreso entre argumentos impresos

En ocasiones, puede ser necesario que al imprimir varios argumentos, estos no deban ser separados por el espacio en blanco:

Python
print("hipo,", "pótamo")
Terminal (Entrada/Salida)
hipo pótamo
_

En estas ocasiones, es preciso modificar el parámetro sep que por defecto es un espacio en blanco. Para ello, se debe pasar el valor deseado como argumento de la función print() que anule el valor por defecto " ":

Python
print("hipo,", "pótamo", sep="")
Terminal (Entrada/Salida)
hipopótamo
_

Evitar el salto de línea o nueva línea al final de la impresión

Si prestamos atención a la Terminal del ejemplo anterior, y luego observamos todos los casos donde hemos impreso algo en pantalla, claramente parece darse el caso de que la función print() genera automáticamente un salto de línea. Está moviendo el cursor automáticamente a la siguiente línea:

Terminal (Entrada/Salida)
hipopótamo
_ (el cursor se encuentra en la línea 2)

print() parece suponer automáticamente que se desea mover el cursor a la siguiente línea después de que termine de imprimir todos los argumentos que reciba, o simplemente imprimir una línea en blanco si no recibe ningún argumento.

Técnicamente hablando, la función print() imprime la secuencia de escape de nueva línea almacenada por defecto en el parámetro end="\n" al final de la salida. Esto significa que después de cada llamada a print(), la siguiente salida por pantalla se imprimirá en una nueva línea al procesar el valor \n por defecto.

Veamos un ejemplo:

Python
print("Esta linea se inicia con una función print()")
print("y termina con otra función print().")
Terminal (Entrada/Salida)
1
2
3
Esta linea se inicia con una función print()
y termina con otra función print().
_

Recuerda que el guión bajo representa la posición del cursor en la terminal del sistema operativo.

Como puedes observar, la salida fue impresa en dos líneas consecutivas (un print() por cada línea).

Si no quieres este comportamiento, puedes cambiar el valor por defecto \n del parámetro end de la función print() por otro valor que lo anule. Por ejemplo:

Python
print("Esta linea se inicia con una función print()", end=" ")
print("y termina con otra función print().")

Este programa imprimirá en pantalla los argumentos de ambas funciones print() sin hacer el salto de cursor a una nueva línea al final de la primera función print().

Terminal (Entrada/Salida)
Esta linea se inicia con una función print() y termina con otra función print().
_

Insertar saltos de línea dentro de las cadenas de caracteres

Así como es posible incluir secuencias de escape en los parámetros sep y end, también es posible hacerlo dentro de las cadenas de caracteres pasadas como argumentos:

Python
print("\nEsto sale en la segunda línea.\nY esto sale en la tercera línea.")

Observa la sentencia y ubica las secuencias de escape para el salto de línea.

Terminal (Entrada/Salida)
1
2
3
4
 
Esto sale en la segunda línea.
Y esto sale en la tercera línea.
_

¡Para recordar!

La función print() es una herramienta versátil y fundamental en Python para la salida de resultados, en forma de texto, por pantalla.

Concatenación de cadenas de caracteres

En Python, es posible concatenar cadenas de caracteres. La concatenación es la operación de unir dos o más cadenas de caracteres para formar una nueva cadena de caracteres.

Por ejemplo, si queremos imprimir la cadena de caracteres "Hola, Mundo!" en dos partes, podemos hacerlo de la siguiente manera:

Python
print("Hola," + " " + "Mundo!")
Terminal (Entrada/Salida)
Hola, Mundo!
_

En este caso, la función print() recibe un argumento, que es la concatenación de tres cadenas de caracteres: "Hola,", un espacio en blanco y "Mundo!". La función imprime la cadena de caracteres resultante en la salida estándar.

Imprimir expresiones

Así como se puede imprimir una cadena de caracteres, también se pueden imprimir expresiones.

¡Para recordar!

Una expresión es una combinación de operandos y operadores que se evalúa y devuelve un resultado.

Por ejemplo, si queremos imprimir el resultado de la suma de dos números, podemos hacerlo de la siguiente manera:

Python
print(3 + 5)
Terminal (Entrada/Salida)
8
_

En este caso, la función print() recibe un argumento, que es el resultado de la expresión 3 + 5 donde 3 y 5 son operandos afectados por el operador de adición +. La función imprime el resultado de la expresión en la salida estándar.

Secuencias de escape dentro de las cadenas de caracteres

Como hemos visto anteriormente, el caracter \ (barra invertida o backslash en inglés) en el contexto de las cadenas de caracteres en muchos lenguajes de programación, incluyendo Python, se utiliza como un caracter de escape.

También hemos visto que un caracter de escape cuando viene acompañado de otro caracter, conocido como caracter de control o caracter de secuencia de escape, juntos invocan una función alternativa a su interpretación normal: en lugar de que ambos caracteres se impriman con el resto de la cadena de caracteres que lo contenga, forman una secuencia de escape, que ejecuta a la función alternativa, mencionada anteriormente.

Analizando la cadena de caracteres almacenada en el parámetro end="\n", el caracter de escape \ le dice al intérprete de Python que el caracter siguiente n debe interpretarse de manera especial. En este caso, la secuencia de escape representa un salto de línea.

Otros ejemplos comunes incluyen \t para un tabulador, \" para una comilla doble, y \\ para imprimir una barra invertida que, de otra manera, si hubiese una sola barra invertida, esta sería el caracter de escape y no se imprimiría en pantalla.

Aquí tienes ejemplos de cómo usar cada secuencia de escape en Python con la función print():

Python
print("Salto de línea: Hola,\nMundo!")
print("Tabulador: Hola,\tMundo!")
print("Barra invertida: Hola,\\Mundo!")
print("Comillas dobles: \"Hola, Mundo!\"")
print("Comillas simples: 'Hola, Mundo!'")
print("Retorno de carro: Hola,\rMundo!")
print("Retroceso: Hola,\bMundo!")
print("Salto de página: Hola,\fMundo!")
print("Tabulación vertical: Hola,\vMundo!")
Terminal (Entrada/Salida)
Salto de línea:
Hola,
Mundo!

Tabulador:
Hola,   Mundo!

Barra invertida:
Hola,\Mundo!

Comillas dobles:
"Hola, Mundo!"

Comillas simples:
'Hola, Mundo!'

Retorno de carro:
Mundo!

Retroceso:
HolaMundo!

Salto de página:
Hola,
Mundo!

Tabulación vertical:
Hola,
Mundo!

Limpiar pantalla con print()

En Python, no existe una función incorporada para limpiar la pantalla de la terminal. Si quisiéramos hacerlo, tendríamos que utilizar un módulo externo que nos habilite a utilizar una función específica del sistema operativo:

Python
import os

os.system('cls' if os.name == 'nt' else 'clear')

En este caso, la función os.system() ejecuta un comando del sistema operativo. Si el sistema operativo es Windows, el comando cls limpia la pantalla. Si el sistema operativo es Linux o macOS, el comando clear limpia la pantalla. No es importante que te detengas aquí para entender por completo esta lógica, aún, pero es bueno que sepas que existe esta posibilidad aunque es algo compleja para una tarea tan simple.

Sin embargo, es posible simular esta funcionalidad utilizando la función print().

Python
print("\033c", end="")

En este caso, la secuencia de escape \033c resetea el terminal (restablece el terminal a su estado inicial) y limpia la pantalla por completo. Es decir que le dice al intérprete de Python que la pantalla debe ser limpiada. Y el parámetro end="" anula el salto de línea que se imprimiría por defecto al final de la función print().

¡Para recordar!

La secuencia de escape \033c es específica para limpiar la pantalla en la mayoría de los terminales.

Es similar a un "reset" que no solo limpia la pantalla, sino que también restablece los atributos del terminal, como el color y la posición del cursor.

Se utiliza cuando se desea un reinicio completo del terminal, eliminando cualquier configuración previa y limpiando la pantalla.

Recuerda la sintaxis: print("\033c", end="")

Ejercicios

Puedes acceder a la ejercitación introductoria propuesta para esta unidad haciendo clic aquí.

O puedes saltarte la ejercitación introductoria si tienen en claro como se utiliza la función print() y acceder directamente a los ejercicios de salida de resultados por pantalla haciendo clic aquí.