# Cuando se ejecuta esta celda, se espera a que el usuario
# teclee la información y luego <enter>
input("Escribe tu nombre:") Escribe tu nombre: Lola
'Lola'
Objetivo. Revisar el uso de la función input() para la entrada estándar.
input().En Python es posible que el usuario proporcione información a un código durante su ejecución, para que, con base en esta información, realice una acción.
Para ello se usa la función input(). Por ejemplo:
# Cuando se ejecuta esta celda, se espera a que el usuario
# teclee la información y luego <enter>
input("Escribe tu nombre:") Escribe tu nombre: Lola
'Lola'
Observaciones.
input() y luego se espera a que teclees alguna información.<enter> la función input() lee la información proporcionada.input() lee toda la información y la almacena una cadena (str).La información que se teclea se puede almacenar en una variable:
numero = input('Teclea un número entero:')Teclea un número entero: 13
Posteriormente, se puede ver el contenido y el tipo de la variable numero:
print(numero, type(numero)) 13 <class 'str'>
Observa que el tipo de la variable es str. Entonces, si queremos usar el valor de un número para realizar un cálculo, lo debemos convertir al tipo numérico requerido. Por ejemplo:
numero = int(input('Teclea un número entero:'))Teclea un número entero: 13
# Checamos el contenido y el tipo
print(numero, type(numero)) 13 <class 'int'>
Observa que ahora el tipo corresponde a un entero debido a que hicimos la conversión (casting) con la función int().
También podemos convertir a tiplo flotante:
numero_f = float(input('Teclea un número flotante:'))Teclea un número flotante: 3.1416
print(numero_f, type(numero_f)) 3.1416 <class 'float'>
.
Primer intento.
base = input('Escribe la base del triángulo:')
altura = input('Escribe la altura del triángulo:')
Area = base * altura / 2Escribe la base del triángulo: 5
Escribe la altura del triángulo: 10
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[10], line 4 1 base = input('Escribe la base del triángulo:') 2 altura = input('Escribe la altura del triángulo:') ----> 4 Area = base * altura / 2 TypeError: can't multiply sequence by non-int of type 'str'
Como puedes observar, hay un error de tipo TypeError: dado que la función input() transforma lo que lee en str, entonces no es posible multiplicar dos cadenas.
Por lo tanto debemos realizar una conversión antes de usar la información obtenida por input():
Segundo intento.
base = int(input('Escribe la base del triángulo:'))
altura = int(input('Escribe la altura del triángulo:'))
area = base * altura / 2
print(f"El área del triángulo de base {base} y altura {altura} es {area}")Escribe la base del triángulo: 5
Escribe la altura del triángulo: 10
El área del triángulo de base 5 y altura 10 es 25.0
Observa que aunque los datos de la base y la altura se transforman a tipo int el resultado del cálculo del área es de tipo flotante.
Sin embargo, se obtiene un error de tipo ValueError, como el que se muestra a continnuación, cuando se dan datos de tipo flotante por ejemplo base = 3.5 y altura = 2.3.
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[13], line 1
----> 1 base = int(input('Escribe la base del triángulo:'))
2 altura = int(input('Escribe la altura del triángulo:'))
3 area = base * altura / 2
ValueError: invalid literal for int() with base 10: '3.5'
Entonces, una implementación más robusta sería la siguiente:
Tercer intento.
base = float(input('Escribe la base del triángulo:'))
altura = float(input('Escribe la altura del triángulo:'))
area = base * altura / 2
print(f"El área del triángulo de base {base} y altura {altura} es {area}")Escribe la base del triángulo: 3.5
Escribe la altura del triángulo: 2.5
El área del triángulo de base 3.5 y altura 2.5 es 4.375
Cuarto intento.
En esta versión solo cambiaremos la manera en que imprimimos la salida usando la función str.format():
base = float(input('Escribe la base del triángulo:'))
altura = float(input('Escribe la altura del triángulo:'))
area = base * altura / 2
print("El área del triángulo de base {b:^10.3f} y altura {a:^10.3f} es {area:^10.3f}".format(b = base, a = altura, area = area))Escribe la base del triángulo: 3.5
Escribe la altura del triángulo: 2.5
El área del triángulo de base 3.500 y altura 2.500 es 4.375