Cuando trabajamos con la consola o el terminal, es muy común solicitar al usuario la introducción de información a través del teclado. En este post de 🐍 Desayunando con Python vamos a ver cómo realizar la entrada de datos por consola, tanto en Python 3.x como en Python 2.x.
Entrada de datos por consola en Python 3: input()
Para pedir al usuario que introduzca algún dato a través del teclado, usaremos el método input()
.
Este método, recibe como parámetro un str
con el mensaje a mostrar al usuario:
>>> edad = input('¿Qué edad tienes?') ¿Qué edad tienes? >?
En este momento, la consola queda a la espera de la entrada de datos por parte del usuario.
Al introducir cualquier texto, será asignado a la variable edad:
>>> edad = input('¿Qué edad tienes?') ¿Qué edad tienes?>? 28 >>> edad '28'
❗️Ten en cuenta que la entrada es convertida SIEMPRE a un objeto de tipo str
UTF-8. Por tanto, si lo que necesitamos es cualquier otro tipo, por ejemplo, un int
, habrá que hacer la conversión correspondiente:
>>> edad = int (edad) >>> edad 28
Como ves, ahora edad
es un int
(ya no se muestra con las comillas simples).
Cómo solicitar datos por consola en Python 2: input()
y raw_input()
Sin embargo, en Python 2 las cosas eran un poco diferentes.
El método raw_input()
es el equivalente al método input()
de Python 3: Lee una línea de la entrada estándar y la devuelve como un objeto str
, esta vez en ASCII.
Por el contrario, el método input()
espera una expresión Python válida. ¿Esto que quiere decir? Pues que le puedes pasar un número pero también una expresión del tipo 2 + 3 * 5
. input()
se encarga de evaluar la entrada y procesarla correctamente. A continuación te muestro un ejemplo:
>>> edad = input('¿Qué edad tienes?') ¿Qué edad tienes?>? 28 >>> edad 28 >>> suma = input('¿Cuánto es 2 + 3?') ¿Cuánto es 2 + 3?>? 2 + 3 >>> suma 5
Conclusión
Como ves, solicitar al usuario datos por consola en Python es muy simple. Ten en cuenta las diferencias entre Python 2.x y Python 3.x, especialmente si realizas una migración de versión. En este último caso, si necesitas que los datos no sean de tipo str
asegúrate de llevar a cabo las conversiones y comprobaciones necesarias.