Ejercicios: Gestión de Inventario
Hora de poner manos a la obra con nuestras cajas de datos.
Ejercicio 4.1: El Inventario Inicial
Crea un archivo inventario.py. Declara las siguientes variables usando Type Hints explícitos e imprímelas:
- Nombre del producto (Texto): “Laptop Gamer”
- Precio (Decimal): 1250.50
- Cantidad en stock (Entero): 15
- ¿Está disponible? (Booleano): Verdadero
Pista 1: La sintaxis de un type hint es
nombre_variable: tipo = valor; el tipo va después de los dos puntos, no después del signo igual.Pista 2: Usa
floatpara el precio,intpara la cantidad,strpara el nombre yboolpara “¿está disponible?” (conTrue, sin comillas).
Ejercicio 4.2: Corrección de Datos
El código de abajo tiene tipos mal asignados según lo que representa cada variable. Tu trabajo es encontrar el error conceptual y escribir la versión corregida en tu archivo. No siempre hay una respuesta única; razona por qué elegiste cada tipo.
# CÓDIGO INCORRECTO (No copiar)
edad_usuario = "veinticinco" # Debería ser número
codigo_postal = 55120 # Los códigos postales no se suman, mejor texto
altura_metros = "1.75" # Debería ser número decimal
Pista 1: Pregúntate para cada variable: ¿voy a hacer matemáticas con este valor, o solo lo voy a mostrar o comparar como texto?
Pista 2:
codigo_postalcasi nunca se suma ni se resta, así que aunque parezca un número, funciona mejor comostr;altura_metrossí necesita operarse, así que debe serfloat.
Ejercicio 4.3: Operaciones Básicas de Tipos
En un nuevo archivo calculos.py:
- Crea dos variables numéricas:
precio_unitarioycantidad. - Calcula el total (
precio_unitario * cantidad) y guárdalo en una variabletotal. - Imprime una frase usando f-strings: “El costo total es: $[total]”.
Pista 1: Multiplica directamente las dos variables numéricas; Python no necesita que conviertas nada si ambas ya son
intofloat.Pista 2: Un f-string se escribe con una
fantes de las comillas y la variable entre llaves:f"...{variable}...".
Ejercicio 4.4: El Misterio del Tipo
Ya conociste type() en la sección de Tipos Primitivos: revela qué clase de caja es una variable.
Úsala para imprimir el tipo de estos valores y anota el resultado como comentario. No todos los casos dan lo que esperarías a primera vista:
type(3.14)type("True")(Ojo: tiene comillas)type(True)type(100)
Pista 1:
type()siempre devuelve la clase real del valor, no lo que tú crees que “debería” ser por cómo se ve escrito.Pista 2: Fíjate en las comillas del segundo valor. ¿Cambian lo que Python cree que tiene enfrente, aunque a tus ojos diga
True?
Ejercicio 4.5: Conversión de Emergencia (Casting)
A veces llega al almacén una caja de texto con un número adentro ("50"). Para hacer matemáticas con ella hay que convertirla primero. Sin esa conversión, Python se niega a operar. Investiga o prueba cómo usar int() y str():
- Crea una variable de texto
numero_texto = "100". - Conviértela a entero y súmale
50. - Imprime el resultado (debería ser 150).
Pista 1:
int()ystr()reciben un valor y devuelven una copia convertida a ese tipo; no modifican la variable original a menos que reasignes.Pista 2: Convierte con
int(numero_texto)y guarda el resultado en una variable (o reasigna la misma) antes de sumarle 50; sumar directamente sobre el texto da error.
Ejercicio 4.6: Rebanando Códigos (Slicing)
Tienes un código de producto: codigo = "PRD-2026-TORNILLO". Usando indexado y rebanado, imprime por separado:
- El prefijo (los tres primeros caracteres).
- El año (
2026). - El último segmento (
TORNILLO). - El último carácter, sin contar cuántos hay.
Pista 1: Cuenta las posiciones desde cero:
codigo[0]es la primera letra, y el rebanado[inicio:fin]no incluye la posiciónfin.Pista 2: Usa índices fijos para el prefijo y el año (
codigo[0:3],codigo[4:8]); para el último segmento y el último carácter, los índices negativos (codigo[-8:],codigo[-1]) te evitan contar la longitud total.
Ejercicio 4.7: La Ficha de Recepción (Integrador)
El gran final del capítulo: junta todo lo aprendido en un solo flujo de recepción de mercancía.
- Pide el nombre del producto con
input()y normalízalo: sin espacios sobrantes y en minúsculas (.strip(),.lower()). - Pide el precio unitario y conviértelo a
float. - Imprime la ficha con una f-string:
Producto: tornillos | Precio: $19.99(el precio a dos decimales, con:.2f). - Remata imprimiendo el tipo de cada variable con
type()para confirmar que la conversión ocurrió.
Pista 1: El flujo tiene cuatro pasos encadenados: pedir el texto, limpiarlo, convertir el precio y formatear la salida. Cada paso parte del resultado del anterior, así que resuélvelos en orden.
Pista 2: Encadena
input("...").strip().lower()para pedir y normalizar el nombre en una sola línea; convierte el precio confloat()apenas lo recibas y usa:.2fdentro del f-string para los dos decimales. Si algo no cuadra, agrega unprint(type(variable))extra justo después de cada conversión para confirmar en qué punto exacto cambió el tipo.
Nota: La conversión de tipos (Casting) es como sacar el contenido de una caja y pasarlo a otra de diferente forma.
Soluciones: en el Apéndice B está la solución de cada ejercicio. Inténtalo por tu cuenta antes de consultarla.
Ya conoces las cajas simples y una idea general de las compuestas. En el siguiente capítulo entramos de lleno a los cuatro muebles organizadores del almacén: listas, diccionarios, conjuntos y tuplas.