From 80f0193a6006ddd947033c4eba9f2b11d1258279 Mon Sep 17 00:00:00 2001 From: Lautaro Date: Tue, 13 Jan 2026 16:23:34 +0100 Subject: [PATCH 1/3] Lau Day 2 Functions Part 1 --- lab-python-functions.ipynb | 47 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/lab-python-functions.ipynb b/lab-python-functions.ipynb index 44d337b..07af9f5 100644 --- a/lab-python-functions.ipynb +++ b/lab-python-functions.ipynb @@ -43,11 +43,54 @@ "\n", "\n" ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a8c8cdee", + "metadata": {}, + "outputs": [], + "source": [ + "def inventario_inicial(productos):\n", + " productos = input (\"Ingrese los productos iniciales (nombre,cantidad) separados por punto y coma: \")\n", + " productos = [item.split(',') for item in productos.split(';')]\n", + " inventario = {}\n", + " return inventario" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a6764782", + "metadata": {}, + "outputs": [], + "source": [ + "def orden_cliente ():\n", + " orden = input (\"Ingrese los productos a ordenar (nombre,cantidad) separados por punto y coma: \")\n", + " orden = [item.split(',') for item in orden.split(';')]\n", + " return orden" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f1755f99", + "metadata": {}, + "outputs": [], + "source": [ + "def inventario_actualizado (orden_cliente, inventario_inicial): \n", + " for producto, cantidad in orden_cliente:\n", + " if producto in inventario_inicial:\n", + " inventario_inicial[producto] += int(cantidad)\n", + " else:\n", + " inventario_inicial[producto] = int(cantidad)\n", + " return inventario_actualizado \n" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "base", "language": "python", "name": "python3" }, @@ -61,7 +104,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.13.9" } }, "nbformat": 4, From 14147014a4c79406551bfe2c49adc51003459f13 Mon Sep 17 00:00:00 2001 From: Lautaro Date: Tue, 13 Jan 2026 16:37:36 +0100 Subject: [PATCH 2/3] Lau Day 2 Funtions Part 2 --- lab-python-functions.ipynb | 51 +++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/lab-python-functions.ipynb b/lab-python-functions.ipynb index 07af9f5..a941e8c 100644 --- a/lab-python-functions.ipynb +++ b/lab-python-functions.ipynb @@ -46,45 +46,62 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 10, "id": "a8c8cdee", "metadata": {}, "outputs": [], "source": [ "def inventario_inicial(productos):\n", - " productos = input (\"Ingrese los productos iniciales (nombre,cantidad) separados por punto y coma: \")\n", - " productos = [item.split(',') for item in productos.split(';')]\n", " inventario = {}\n", - " return inventario" + " 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": 4, + "execution_count": 12, "id": "a6764782", "metadata": {}, "outputs": [], "source": [ - "def orden_cliente ():\n", - " orden = input (\"Ingrese los productos a ordenar (nombre,cantidad) separados por punto y coma: \")\n", - " orden = [item.split(',') for item in orden.split(';')]\n", - " return orden" + "def obtener_orden_cliente ():\n", + " orden_cliente = []\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.append(producto)\n", + " return orden_cliente\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "f1755f99", "metadata": {}, "outputs": [], "source": [ - "def inventario_actualizado (orden_cliente, inventario_inicial): \n", - " for producto, cantidad in orden_cliente:\n", - " if producto in inventario_inicial:\n", - " inventario_inicial[producto] += int(cantidad)\n", - " else:\n", - " inventario_inicial[producto] = int(cantidad)\n", - " return inventario_actualizado \n" + "def inventario_actualizado (orden_cliente, inventario):\n", + " for producto in orden_cliente:\n", + " if producto in inventario:\n", + " inventario [producto] -= 1\n", + " return inventario\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6747c726", + "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" ] } ], From cb4efab9e25d26298a4b1b4b6ab53250149238a9 Mon Sep 17 00:00:00 2001 From: Lautaro Date: Tue, 13 Jan 2026 16:45:51 +0100 Subject: [PATCH 3/3] Lau Day 2 Functions Part 3 --- lab-python-functions.ipynb | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/lab-python-functions.ipynb b/lab-python-functions.ipynb index a941e8c..9e49a9d 100644 --- a/lab-python-functions.ipynb +++ b/lab-python-functions.ipynb @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 14, "id": "a8c8cdee", "metadata": {}, "outputs": [], @@ -56,23 +56,23 @@ " for producto in productos:\n", " cantidades_producto = int (input(f\"Ingrese la cantidad inicial de {producto}: \"))\n", " inventario [producto] = cantidades_producto\n", - " return inventario" + " return inventario" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "id": "a6764782", "metadata": {}, "outputs": [], "source": [ "def obtener_orden_cliente ():\n", - " 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.append(producto)\n", + " orden_cliente.add(producto)\n", " return orden_cliente\n" ] }, @@ -103,6 +103,33 @@ " porcentaje_productos = (productos_unicos / len(productos)) * 100\n", " return total_productos, productos_unicos, porcentaje_productos" ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "1eeece37", + "metadata": {}, + "outputs": [], + "source": [ + "def print_estadísticas_orden (estadísticas_orden):\n", + " total_productos, productos_unicos, porcentaje_productos = estadísticas_orden\n", + " print(f\"Total de productos en la orden: {total_productos}\")\n", + " print(f\"Número de productos únicos en la orden: {productos_unicos}\")\n", + " print(f\"Porcentaje de productos únicos respecto al inventario total: {porcentaje_productos:.2f}%\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "68643f17", + "metadata": {}, + "outputs": [], + "source": [ + "def print_inventario_actualizado (inventario):\n", + " print(\"Inventario actualizado:\")\n", + " for producto, cantidad in inventario.items():\n", + " print(f\"{producto}: {cantidad}\")" + ] } ], "metadata": {