La entrada de datos por teclado se realiza mediante la función input(), que nos devolverá el valor tecleado hasta la pulsación de la tecla INTRO como una cadena de caracteres. En la siguiente imagen vemos su uso y comprobamos que el tipo de valor recibido es una cadena de caracteres:
valor = input() #Introduciremos "100"
valor
print(type(valor))
100
'100'
<class 'str'>
Si la función input() le pasamos como parámetro una cadena de caracteres, dicha cadena nos aparecerá como mensaje antes de leer el valor:
# Podemos mostrar un mensaje antes de leer el valor
valor = input("Introduce un valor: ")
Introduce un valor: 100
Al recibir un valor mediante esta función, hay que tener en cuenta que siempre se recibe una cadena de caracteres (string) y que no podemos tratarla como un número.
# Una cadena y un número no se pueden operar
valor + 100
TypeError: Can't convert 'int' object to str implicity
Para tratar el valor recibido como un número entero y poder operar con él, debemos realizar un casting a un valor entero (integer) como se ve a continuación:
valor = input("Introduce un número entero: ")
#La función int(), devuelve un número entero a partir de una cadena
valor = int(valor)
valor
print (type(valor))
#ahora ya es operable
1000 + valor
Introduce un número entero: 500
500
<class 'int'>
1500
# Tambien se puede realizar una única línea
valor = int(input("Introduce un número entero: "))
print(type(valor))
Introduce un número entero: 500
<class 'int'>
Si lo que queremos es tratar el valor recibido como un número decimal y poder operar con él, debemos realizar un casting a un valor decimal (float), como se ve a continuación
valor = float(input("Introduce un número decimal: "))
10 + valor
print(type(valor))
Introduce un número entero: 10.5
20.5
<class 'float'>