Entrada y salida básica
Todo programa interactivo necesita comunicarse con quien lo usa. En Python, la forma más sencilla de hacerlo es a través de la consola: mostrando resultados en pantalla con print(), y leyendo datos que el usuario escribe por teclado con input().
Salida de datos con print()
La función print() muestra por pantalla la información que le indiques. Puedes pasarle un texto entre comillas, un número, el contenido de una variable, o varios valores a la vez separados por comas.
print("¡Hola, mundo!")
¡Hola, mundo!
Si le pasas varios valores separados por comas, print() los muestra todos seguidos en la misma línea, separados por un espacio:
nombre = "Ana"
edad = 20
print("Me llamo", nombre, "y tengo", edad, "años")
Me llamo Ana y tengo 20 años
Cada llamada a print() termina la línea con un salto de línea, así que la siguiente llamada a print() empieza siempre en una línea nueva.
También puedes unir varias cadenas de texto en un único mensaje con el operador +, en vez de pasarlas por separado a print(). Esto se llama concatenar:
nombre = "Ana"
print("Me llamo " + nombre)
Me llamo Ana
Más adelante, en el apartado de operadores, veremos con más detalle cómo funciona + con cadenas, en qué se diferencia de separar valores con comas en print(), y qué pasa si intentas concatenar un número sin convertirlo antes a texto.
Más adelante también veremos cómo personalizar el comportamiento de print() (el separador entre valores, si termina o no en salto de línea) y cómo dar formato más avanzado a lo que se muestra (por ejemplo, con f-strings).
Entrada de datos con input()
A veces necesitaremos que sea el usuario quien nos proporcione el valor para una variable a través del teclado. Python proporciona una función interna llamada input que recibe la entrada desde el teclado. Cuando se llama a esta función, el programa se detiene y espera a que el usuario escriba algo. Cuando el usuario pulsa la tecla Enter, el programa continúa y input devuelve la cadena con lo que escribió el usuario.
entrada = input() # Escribimos: Cualquier cosa ridícula
print(entrada) # Imprime: Cualquier cosa ridícula
Antes de recibir cualquier dato desde el usuario, es buena idea escribir un mensaje explicándole lo que debe introducir. Se le puede pasar una cadena a input, que será mostrada al usuario antes de que el programa se detenga para recibir su entrada.
nombre = input('¿Cómo te llamas?\n') # Imprime: ¿Cómo te llamas? | Escribimos: Manuel
print(nombre) # Imprime: Manuel
El carácter \n al final del mensaje representa un newline (nueva línea), que es un carácter especial que provoca un salto de línea. Por eso la entrada del usuario aparece debajo de nuestro mensaje.
Si esperas que el usuario escriba un entero, puedes intentar convertir el valor de retorno a int utilizando la función int(), debido a que la función input siempre devuelve una cadena de texto, sin importar los valores que se introduzcan por teclado.
prompt = '¿Cuál es la velocidad actual?\n'
velocidad = input(prompt) # Imprime: ¿Cuál es la velocidad actual? | Escribimos: 17
int(velocidad) # Obtiene el valor numérico 17
int(velocidad) + 5 # Obtiene el valor numérico 22
Pero si el usuario escribe algo que no sea una cadena de dígitos obtendrás un error.
# Imprime: ¿Cuál es la velocidad actual? | Escribimos: ¿A qué velocidad te refieres?
velocidad = input(prompt)
# Obtiene el error: ValueError: invalid literal for int()
int(velocidad)
Veremos más adelante cómo controlar estos errores utilizando captura de excepciones.