Lectura de la entrada de teclado
Muchos programas son interactivos. La compatibilidad con interactividad significa que tiene un programa que se ejecuta de forma diferente en función de la entrada. Normalmente, quien introduce datos en un programa es un usuario, pero puede ser otro programa. Hay muchas maneras de enviar datos a un programa. Dos maneras comunes son a través de una interfaz gráfica o una consola.
Entrada de usuario
Para leer la entrada hecha desde el teclado, Python proporciona la función input()
. input()
lee lo que el usuario escribe en el teclado y lo devuelve como una cadena. Aquí tiene un ejemplo en el que se combinan input()
y print()
para capturar el nombre de una persona y mostrarlo en la pantalla:
name = input('Enter your name:')
print(name)
La cadena se ha pasado como un argumento a la función input
, que es el aviso que el usuario verá. En este ejemplo, le pide al usuario que escriba su nombre ("Escriba su nombre"). Una vez que el usuario escriba un nombre y pulse Entrar, la función input
volverá. El valor devuelto de la función es el texto que ha escrito el usuario y este texto se asigna a la variable llamada name
. Después, la variable name
se usa como una entrada o un argumento para la función print
, que dará como resultado el nombre que el usuario ha introducido.
También se puede llamar a la función input
sin un parámetro:
print('What is your name?')
name = input()
print(name)
El comportamiento de este programa será casi igual que el primero de ellos. La diferencia es que print
agrega, de forma predeterminada, una nueva línea a la salida.
Lectura de números como entrada
La función input
siempre devuelve el valor escrito como una cadena (texto). Esta elección tiene sentido porque el usuario puede escribir cualquier valor que quiera. Incluso si la entrada es un número válido, se devuelve como un tipo de cadena desde la función input
. Por ejemplo:
x = input('Enter a number: ')
print(type(x))
Ejecutar este código y escribir el valor de "5" mostraría <class 'str'>
, aunque el propio valor es numérico. Para convertir el valor en una variable de entero verdadera, se puede usar la función int()
:
x = int(input('Enter a number: '))
print(type(x))
Para el valor "5", este código dará como resultado <class 'int'>
. Se puede usar la función float
igual que cuando se espera un componente fraccional.
Importante
¿Qué ocurre si la entrada no es numérica y se pasa a la función int()
? Como puede imaginar, esto sería un error y produciría un error de runtime. El programa finalizará en esta declaración: puede probarlo por su cuenta en la consola interactiva de Python. Hablaremos sobre diversas soluciones para controlar estos tipos de errores en módulos futuros.
Conversión de números en cadenas
También puede ir en la otra dirección. El método str()
tomará un valor entero o flotante y lo convertirá en una cadena. Es necesario llamar al método str()
si quiere que funcione el ejemplo de código siguiente. La conversión garantiza que el entero, en su forma de cadena, se concatena con la cadena de la izquierda.
x = 5
print('The number is ' + str(x))