Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
177 changes: 173 additions & 4 deletions lab-python-error-handling.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,187 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"id": "cc2c441d-9dcf-4817-b097-cf6cbe440846",
"metadata": {},
"outputs": [],
"source": [
"# your code goes here"
"#1.\n",
"def inventario_inicial(productos):\n",
" inventario = {}\n",
" for producto in productos:\n",
" cantidades_producto = int (input(f\"Ingrese la cantidad inicial de {producto}: \"))\n",
" inventario [producto] = cantidades_producto\n",
" return inventario"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "94d692aa",
"metadata": {},
"outputs": [],
"source": [
"def inventario_inicial(productos):\n",
" inventario = {}\n",
"\n",
" for producto in productos:\n",
" while True:\n",
" try:\n",
" quantity = int(input(f\"Ingrese la cantidad inicial de {producto}: \"))\n",
"\n",
" if quantity < 0:\n",
" raise ValueError(\"La cantidad no puede ser negativa.\")\n",
"\n",
" except ValueError as e:\n",
" print(f\"Error: {e}\")\n",
" print(\"Ingrese un número válido.\")\n",
" else:\n",
" inventario[producto] = quantity\n",
" break\n",
" finally:\n",
" print(\"Intentando cargar producto...\")\n",
"\n",
" return inventario\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "0e27fb0b",
"metadata": {},
"outputs": [],
"source": [
"def obtener_orden_cliente ():\n",
" orden_cliente = set ()\n",
" while True:\n",
" producto = input(\"Ingrese el nombre del producto que desea comprar (o 'fin' para terminar): \")\n",
" if producto.lower() == 'fin':\n",
" break\n",
" orden_cliente.add(producto)\n",
" return orden_cliente"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "e5a65fc5",
"metadata": {},
"outputs": [],
"source": [
"def obtener_orden_cliente():\n",
" orden_cliente = set()\n",
"\n",
" while True:\n",
" try:\n",
" producto = input(\"Ingrese el producto (o 'fin' para terminar): \").strip()\n",
"\n",
" if producto == \"\":\n",
" raise ValueError(\"No puede estar vacío.\")\n",
"\n",
" if producto.lower() == \"fin\":\n",
" break\n",
"\n",
" orden_cliente.add(producto)\n",
"\n",
" except ValueError as e:\n",
" print(f\"Error: {e}\")\n",
" else:\n",
" print(f\"{producto} agregado correctamente.\")\n",
"\n",
" return orden_cliente\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a0b388fd",
"metadata": {},
"outputs": [],
"source": [
"def inventario_actualizado (orden_cliente, inventario):\n",
" for producto in orden_cliente:\n",
" if producto in inventario:\n",
" inventario [producto] -= 1\n",
" return inventario"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "dc348386",
"metadata": {},
"outputs": [],
"source": [
"def inventario_actualizado(customer_orders, inventory):\n",
" try:\n",
" for producto in orden_cliente:\n",
" if producto not in inventario:\n",
" raise KeyError(f\"{producto} no existe en el inventario.\")\n",
"\n",
" inventoario[producto] -= 1\n",
"\n",
" if inventario[producto] < 0:\n",
" raise ValueError(f\"No hay stock suficiente para {producto}\")\n",
"\n",
" except KeyError as e:\n",
" print(f\"Error: {e}\")\n",
" except ValueError as e:\n",
" print(f\"Error: {e}\")\n",
" else:\n",
" print(\"Inventario actualizado correctamente.\")\n",
" finally:\n",
" print(\"Proceso de actualización finalizado.\")\n",
"\n",
" return inventario\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e151d665",
"metadata": {},
"outputs": [],
"source": [
"def calculo_estadísticas_orden (orden_cliente, productos):\n",
" total_productos = len(orden_cliente)\n",
" productos_unicos = len(set(orden_cliente))\n",
" porcentaje_productos = (productos_unicos / len(productos)) * 100\n",
" return total_productos, productos_unicos, porcentaje_productos"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "3a8b62b1",
"metadata": {},
"outputs": [],
"source": [
"def calculate_order_statistics(orden_cliente, productos):\n",
" try:\n",
" total_productos = len(orden_cliente)\n",
" productos_unicos = len(set(orden_cliente))\n",
"\n",
" if len(products) == 0:\n",
" raise ZeroDivisionError(\"No hay productos en inventario.\")\n",
"\n",
" percentage = (productos_unicos / len(productos)) * 100\n",
"\n",
" except ZeroDivisionError as e:\n",
" print(f\"Error: {e}\")\n",
" percentage = 0\n",
" else:\n",
" print(\"Estadísticas calculadas correctamente.\")\n",
" finally:\n",
" print(\"Proceso de estadísticas finalizado.\")\n",
"\n",
" return total_productos, productos_unicos, percentage\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "base",
"language": "python",
"name": "python3"
},
Expand All @@ -66,7 +235,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
"version": "3.13.9"
}
},
"nbformat": 4,
Expand Down