diff --git a/lab-python-data-structures.ipynb b/lab-python-data-structures.ipynb index 5b3ce9e0..6175c124 100644 --- a/lab-python-data-structures.ipynb +++ b/lab-python-data-structures.ipynb @@ -9,6 +9,13 @@ "# Lab | Data Structures " ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -50,11 +57,130 @@ "\n", "Solve the exercise by implementing the steps using the Python concepts of lists, dictionaries, sets, and basic input/output operations. " ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 1: Definir la lista de productos\n", + "products = [\"t-shirt\", \"mug\", \"hat\", \"book\", \"keychain\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 2: Crear un diccionario vacío para el inventario\n", + "inventory = {}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 3: Solicitar al usuario la cantidad de cada producto\n", + "print(\"Ingrese la cantidad disponible de cada producto:\")\n", + "for product in products:\n", + " quantity = int(input(f\"Ingrese cantidad para {product}: \"))\n", + " inventory[product] = quantity\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 4: Crear un conjunto vacío para los pedidos del cliente\n", + "customer_orders = set()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 5: Solicitar al usuario tres productos para el pedido\n", + "print(\"\\nIngrese el nombre de tres productos que el cliente quiere pedir:\")\n", + "for _ in range(3):\n", + " order = input(\"Ingrese nombre del producto: \").strip().lower()\n", + " if order in products:\n", + " customer_orders.add(order)\n", + " else:\n", + " print(f\"Advertencia: '{order}' no está en la lista de productos disponibles.\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 6: Mostrar los productos en el pedido del cliente\n", + "print(\"\\nPedidos del cliente:\", customer_orders)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 7: Calcular las estadísticas del pedido\n", + "total_products_ordered = len(customer_orders)\n", + "percentage_ordered = (total_products_ordered / len(products)) * 100\n", + "order_status = (total_products_ordered, percentage_ordered)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 8: Imprimir las estadísticas del pedido\n", + "print(\"\\nEstadísticas del Pedido:\")\n", + "print(f\"Total Productos Pedidos: {order_status[0]}\")\n", + "print(f\"Porcentaje de Productos Pedidos: {order_status[1]:.2f}%\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 9: Actualizar el inventario (restar 1 unidad de cada producto)\n", + "for product in inventory:\n", + " inventory[product] -= 1\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Paso 10: Mostrar el inventario actualizado\n", + "print(\"\\nInventario Actualizado:\")\n", + "for product, quantity in inventory.items():\n", + " print(f\"{product}: {quantity}\")\n", + " " + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "base", "language": "python", "name": "python3" }, @@ -68,7 +194,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.13.9" } }, "nbformat": 4,