La función input()
La función input()
en Python es una función incorporada o predefinida que se utiliza para aceptar la entrada estándar (generalmente el teclado) por parte del usuario durante la ejecución de un programa. Es decir, que solicita al usuario que ingrese un valor y espera a que el usuario proporcione la entrada y la finalice pulsando la tecla ENTER. La entrada proporcionada es devuelta por la función input()
como una cadena de caracteres (string) para ser utilizar en el programa.
Esta función es esencial para la interacción con el usuario, ya que permite al programa recibir datos del usuario para ser procesados.
¡Par recordar!
Sin importar que tipo de dato se le solicite al usuario o como se vea dicho dato ingresado en la pantalla, la función input()
siempre lo devolverá como una cadena de caracteres.
Si necesitas que el dato sea interpretado como otro tipo de dato, deberás convertirlo (casting) al tipo de dato (por ejemplo a entero, a flotante o a booleano) correspondiente.
Sintaxis
Veamos, entonces, cual es la sintaxis de la función input():
Cómo utilizar la función input()
Para utilizar la función input(), simplemente la llamamos en el código. De forma predeterminada, la función input()
no requiere ningún parámetro. Sin embargo, puedes proporcionar un mensaje opcional (prompt) que le indique al usuario que dato deberá ingresar, antes de aceptar la entrada.
Si analizamos la siguiente sintaxis, ¿qué resultado producirá la siguiente instrucción?
Haz clic aquí para ver la solución propuesta
Al ejecutar el programa, la instrucción llama a la función
print()
pasándole dos argumentosLa función, entonces, valida que todos los argumentos estén en condiciones para poder ser impresos.
En este caso, el primer argumento es una cadena de caracteres así que no habría inconvenientes.
Pero el segundo argumento es una llamada a la función
input()
. Así que, la funciónprint()
pausa su funcionamiento y le pasa el control a la funcióninput()
que, como contiene una cadena de caracteres, la muestra en pantalla y espera que el usuario ingrese un dato por teclado. Cabe aclarar que, a diferencia deprint()
,input()
no efectúa un salto de línea luego de imprimir el mensaje.Una vez que el usuario ingresa el dato por teclado y presiona la tecla ENTER, la función
input()
devuelve el dato ingresado como cadena de caracteres a la funciónprint()
para que continúe su ejecución.La función
print()
termina de controlar que todos los argumentos estén en condiciones de ser impresos y recién ahí los imprime en pantalla.
Veamos el funcionamiento paso a paso:
Esta es la instrucción que se ejecuta:
``` py title="Python"
print("Hola", input("Introduce tu nombre: "))
```
En tiempo de ejecución, `print()` comienza a evaluar cada argumento y se encuentra con la función `input()` que se ejecuta mostrando el mensaje "Introduce tu nombre: " y posicionando el cursor a continuación a la espera de que el usuario introduzca un dato por teclado:
``` py title="Terminal (Entrada/Salida)" linenums="1"
Introduce tu nombre: _
```
Luego, el usuario introduce el dato por teclado y presiona _ENTER_:
``` py title="Terminal (Entrada/Salida)" linenums="1"
Introduce tu nombre: Pablo_
```
La función `input()` devuelve el dato ingresado por el usuario como una cadena de caracteres y se lo pasa a la función `print()` para que continúe su ejecución.
En la memoria de la computadora, no en la línea de código original del programa, se produce el siguiente paso:
``` py title="Python"
print("Hola", "Pablo")
```
Finalmente, la función `print()` imprime en pantalla los argumentos que se le pasaron:
``` py title="Terminal (Entrada/Salida)" linenums="1"
Introduce tu nombre: Pablo_
Hola Pablo
```
¡Para recordar!
Siempre que te sea útil, puedes insertar la función input()
dentro de la función print()
. Primero se ejecutará la función input()
esperando el ingreso de datos por teclado y luego se ejecutará la función print()
imprimiendo el dato ingresado.
Por ejemplo, si el usuario ingresa 45:
Si necesitas que el usuario introduzca un número, tendrás que convertir la cadena a un número utilizando las funciones int()
o float()
(casting).
En este caso, si el usuario introduce un dato que no puede convertirse en un número, el programa generará un error.
Por ejemplo, si el usuario ingresa cuarenta y cinco:
Hasta acá hemos aprendido cómo utilizar la función input()
para recibir datos del usuario.
Sin embargo, ¿cómo podemos utilizar estos datos en nuestro programa?
Hasta ahora, solo los hemos mostrado en pantalla pero no los hemos almacenado en ninguna variable y la potencialidad de la función input()
radica en poder almacenar los datos ingresados por el usuario para ser utilizados en el programa.
Hagamos unos ejercicios para fijar los conceptos y luego veamos cómo almacenar los datos ingresados por el usuario.
Simular una pausa en la ejecución del programa con input()
En ocasiones, necesitamos que el programa se detenga y espere a que el usuario indique que puede continuar. En estas ocasiones, basta con presionar la tecla ENTER. Para ello, podemos utilizar la función input()
sin almacenar el dato ingresado por el usuario.
Presiona `ENTER` para continuar... # El cursor se posiciona esperando que el usuario presione la tecla ENTER
En este caso, la función input()
no almacena el dato ingresado por el usuario ya que no será requerido por el programa para su procesamiento. Simplemente se detiene y espera a que el usuario presione la tecla ENTER para continuar con la ejecución del programa. Por supuesto, el usuario podría presionar cualquier otra tecla o secuencia de teclas, pero el programa no las utilizará.
Conclusión
La función input()
en Python es una herramienta útil para aceptar la entrada del usuario durante la ejecución de un programa. Te permite interactuar con el usuario y recuperar valores de entrada, que se pueden utilizar en tu programa. Recuerda que la función input()
devuelve la entrada del usuario como una cadena de caracteres de forma predeterminada, por lo que es posible que necesites convertirla a un tipo de dato diferente si es necesario.
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 input()
y acceder directamente a los ejercicios de ingreso de datos por teclado haciendo clic aquí.