La entrada de datos por consola con input en Python

La entrada de datos por consola con input en Python

Gracias al método input() de Python, podemos introducir datos al programa desde la consola.

Voy a reutilizar el código del capítulo anterior, solo que esta vez, le voy a dejar al usuario la elección del dato a introducir.

colores = ['rojo', 'azul', 'verde', 'amarillo']
 
color = input('Por favor, introduzca un color para comprobar si está en la lista.\n')
 
if color not in colores:
    print(f'El color {color} no está en la lista')
else:
    print(f'El color {color} está en la lista')

Resultado en la consola

Por favor, introduzca un color para comprobar si está en la lista.
gris
El color gris no está en la lista

Esta vez, he introducido el color gris. Puesto que no está en la lista, se ejecuta el código del if.

En cambio, si el color está en la lista, se ejecutará el código del else.

Resultado en la consola

Por favor, introduzca un color para comprobar si está en la lista.
rojo
El color rojo está en la lista

Conversión de String numérico a integer en Python

Algo que podemos hacer en Python, es realizar una conversión de string con un valor numérico a integer.

¿Cuándo podemos necesitar realizar esta acción?

Un buen ejemplo son los input(). Supongamos que tienes el siguiente código. Lo que se espera que se introduzca en cada input() es un número para realizar una suma.

numero1 = input("Introduce el primer número a sumar\n")
 
numero2 = input("Introduce el segundo número a sumar\n")
 
suma = numero1 + numero2
 
print(f"El resultado de la suma es {suma}.")

Si introduzco los siguientes números, esto es lo que ocurre:

Resultado en la consola

Introduce el primer número a sumar
10
Introduce el segundo número a sumar
25
El resultado de la suma es 1025.

La suma la realiza mal. Me da como resultado 1025.

Lo que está ocurriendo aquí, es que estoy concatenando dos strings «10» + «25». Entonces, ese es el resultado.

Esto ocurre en Python porque los datos del input() se almacenan siempre como strings, a no ser que hagamos una conversión de tipo de dato a integer como en el siguiente ejemplo:

numero1 = int(input("Introduce el primer número a sumar\n"))
 
numero2 = int(input("Introduce el segundo número a sumar\n"))
 
suma = numero1 + numero2
 
print(f"El resultado de la suma es {suma}.")

Resultado en la consola

Introduce el primer número a sumar
10
Introduce el segundo número a sumar
25
El resultado de la suma es 35.

Ahora, el resultado es correcto. Solo ha hecho falta envolver los input() con un int() para convertir los datos a integer.

Solo ten en cuenta una cosa muy importante. Si los input() están envueltos con int(), se espera que el usuario introduzca una tipo de dato integer, ni un float, ni un string ni nada de otro tipo de dato.

Si haces esto, te dará un «ValueError». No te preocupes todavía por eso, ya que tiene solución. La veremos en otro capítulo.

No te pierdas todo el contenido de este curso y más cosas sobre Python.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Entrada anterior El prompt de Linux
curso de Python Entrada siguiente El condicional switch (match) de Python