Entrada de datos por teclado
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.