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.
print(): escribir salida
En su forma más simple, print() escribe una línea de texto a la terminal:
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:
Salida:
Name: Ada Age: 36
Los valores no necesitan ser strings. print llama a str() en cada argumento, así que puedes mezclar tipos libremente:
Cambiar el separador
Si un espacio entre valores no es lo que quieres, usa sep:
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:
end="" es el truco para ir construyendo una línea trozo a trozo.
print va a stdout
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:
Para salida formateada — dos decimales, columnas con padding, comas en números grandes — usa f-strings dentro de print:
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.
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:
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:
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():
Un programa completo diminuto
Juntándolo todo — unas líneas que piden al usuario su información e imprimen un pequeño informe:
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:
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.