Menu

print() e input() en Python: leer entrada del usuario y mostrar salida

Cómo funcionan las funciones print() e input() de Python — más separadores, caracteres de final y cómo convertir la entrada del usuario a números.

Las dos funciones que hacen tu programa interactivo

La mayoría de programas Python tempranos siguen la misma forma: pregunta al usuario algo con input(), haz algo con la respuesta e informa de vuelta con print(). Estas dos funciones incorporadas son cómo tu código habla con el mundo.

Vamos con ellas una a una.

En su forma más simple, print() escribe una línea de texto a la terminal:

main.py
Output
Click Run to see the output here.

Eso saca la palabra hello seguida de un salto de línea. El salto de línea es lo que separa una llamada a print de la siguiente en pantalla.

Puedes pasar varios valores en una sola llamada, y Python pondrá un espacio entre ellos:

main.py
Output
Click Run to see the output here.

Salida:

Name: Ada Age: 36

Los valores no necesitan ser strings. print llama a str() en cada argumento, así que puedes mezclar tipos libremente:

main.py
Output
Click Run to see the output here.

Cambiar el separador

Si un espacio entre valores no es lo que quieres, usa sep:

main.py
Output
Click Run to see the output here.

Cambiar el final de línea

Por defecto print añade un salto de línea. Usa end para cambiar eso — por ejemplo, para mantener la salida en la misma línea:

main.py
Output
Click Run to see the output here.

end="" es el truco para ir construyendo una línea trozo a trozo.

Por defecto, print escribe a stdout (salida estándar) — el sitio normal donde aparece la salida de la terminal. Puedes redirigirlo a stderr, un archivo o cualquier otro objeto tipo archivo con el argumento file:

main.py
Output
Click Run to see the output here.

Para salida formateada — dos decimales, columnas con padding, comas en números grandes — usa f-strings dentro de print:

main.py
Output
Click Run to see the output here.

input(): leer del usuario

input(prompt) para el programa, muestra el prompt al usuario y espera. Lo que el usuario escriba — hasta que pulse enter — vuelve como un string.

main.py
Output
Click Run to see the output here.

Tres cosas sobre input que muerden a los novatos:

Siempre devuelve un string

Incluso si el usuario escribe 42, lo que obtienes de vuelta es el string "42". No puedes hacer aritmética con él directamente:

main.py
Output
Click Run to see the output here.

Por eso verás a menudo int(input(...)) o float(input(...)) en línea. Si el usuario escribe algo que no es un número válido, int() lanza ValueError — que manejaremos apropiadamente en el capítulo sobre excepciones.

El prompt es opcional

Si no pasas un string de prompt, input() espera en silencio, que casi siempre es la opción equivocada — el usuario no tiene ni idea de qué le estás pidiendo. Pasa siempre un prompt claro:

main.py
Output
Click Run to see the output here.

No quita nada

Lo que sea que el usuario escriba, incluidos espacios iniciales y finales, vuelve tal cual. Si eso importa para tu lógica, llama a .strip():

main.py
Output
Click Run to see the output here.

Un programa completo diminuto

Juntándolo todo — unas líneas que piden al usuario su información e imprimen un pequeño informe:

main.py
Output
Click Run to see the output here.

Doce líneas. Se lee de arriba a abajo como instrucciones, no como código. Ese es el estilo que esta documentación intenta fomentar.

¿Y qué hay de la depuración con print?

A veces oirás que "los desarrolladores de verdad usan un debugger, no instrucciones de print". Eso está exagerado. Print es una herramienta de depuración perfectamente buena, sobre todo para scripts pequeños y experimentos rápidos. Salpica llamadas a print generosamente mientras estés averiguando algo, y quítalas cuando termines.

Dos pequeños trucos de calidad de vida:

main.py
Output
Click Run to see the output here.

El = dentro de una f-string imprime tanto el nombre como el valor, lo que ahorra un montón de boilerplate tipo print("name =", name).

Seguimos adelante

print e input te dan un bucle conversacional completo: pregunta, lee, responde. El siguiente capítulo empieza a mezclar condiciones — la sentencia if y los operadores que deciden lo que tu programa hace en función de los valores que ve.

Preguntas frecuentes

¿Qué hace print() en Python?

Escribe valores en la terminal. print("hello") saca hello seguido de un salto de línea. Puedes pasar varios valores separados por comas, y print() pondrá un espacio entre ellos por defecto.

¿Cómo funciona input() en Python?

input(prompt) pausa el programa, muestra el prompt al usuario, espera a que escriba algo y pulse enter, y devuelve lo que tecleó como string. Siempre un string — si quieres un número, envuelve la llamada en int(...) o float(...).

¿Cómo imprimo en la misma línea en Python?

Pasa end="" a print. Por defecto print añade un salto de línea al final; poner end a un string vacío (o a cualquier otro carácter) reemplaza ese salto.

Aprende a programar con Coddy

COMENZAR