SISTEMA DE
PEDIDO DE
RESTAURANTE
EN CONSOLA
USANDO
PYTHON
Autor: Garcia Chavez
Diego Francisco
RESUMEN
Este proyecto consiste en un sistema de pedidos de restaurante implementado en
Python, que permite al usuario seleccionar platos del menú desde la consola de
forma interactiva. Se emplean estructuras modernas del lenguaje como funciones
decoradoras, generadores, funciones lambda, y uso de bibliotecas externas como
pandas para organizar y mostrar el menú, y numpy para realizar cálculos numéricos
como el IGV (18%).
El menú está dividido en tres categorías: comidas, entradas y bebidas. El cliente
puede realizar múltiples pedidos, y el sistema calcula automáticamente el subtotal y
el monto total con IGV. Además, si el total del pedido es superior a 50 soles, se aplica
un descuento del 10%.
Este programa aplica los principios de modularidad, legibilidad y reutilización de
código, ideales para proyectos introductorios en programación estructurada con
Python.
INVESTIGACIÓN
Este proyecto se basa en una lógica similar a la mostrada en EaseMyOrder (Dev‑soni‑07,
2023), que utiliza Python, pandas y NumPy para gestionar pedidos de restaurante desde
consola.
ESTRUCTURA DEL CÓDIGO
-Usa pandas para manejar tablas (DataFrame).
-Usa decoradores para validar si el producto existe.
-Usa generadores (yield) para simular la preparación.
-Usa funciones lambda para lógica corta y expresiva (como el
descuento).
-Usa numpy para cálculos exactos (IGV con redondeo).
-Es totalmente modular y fácil de ampliar con nuevos
productos.
1)PANDAS: PARA CREAR Y MANIPULAR UNA TABLA TIPO EXCEL
(DATAFRAME) DEL MENÚ.
2)NUMPY: SE USA PARA REDONDEAR CON PRECISIÓN DECIMAL (IGV).
3)TIME: SIMULA PAUSAS DE PREPARACIÓN CON SLEEP().
-DEFINE UN MENÚ DIGITAL: PRODUCTO, CATEGORÍA Y PRECIO.
-DATAFRAME ES IDEAL PARA TABLAS ESTRUCTURADAS, COMO MENÚS O
REPORTES.
-REVISA SI EL PRODUCTO EXISTE EN EL MENÚ ANTES DE EJECUTAR LA
FUNCIÓN.
-ES UN DECORADOR: FUNCIÓN QUE ENVUELVE OTRA FUNCIÓN PARA
AÑADIRLE LÓGICA.
-SIMULA PASO A PASO CÓMO SE PREPARA EL PEDIDO.
-USA YIELD PARA GENERAR DATOS UNO POR UNO SIN OCUPAR MUCHA
MEMORIA.
-DEVUELVE EL PRECIO DEL PRODUCTO BUSCÁNDOLO EN EL MENÚ.
-EL DECORADOR @VALIDAR_PEDIDO EVITA ERRORES SI EL PRODUCTO NO
EXISTE.
6. HACER EL PEDIDO (CON INPUT)
-REPITE EL PROCESO HASTA QUE EL CLIENTE ESCRIBA FIN.
-SUMA PRECIOS, GUARDA PRODUCTOS Y MUESTRA PASOS CON
PREPARAR().
7. LAMBDA PARA APLICAR DESCUENTO
-APLICA 10% DE DESCUENTO SI EL SUBTOTAL SUPERA S/. 50.
-LAMBDA ES UNA FORMA RÁPIDA DE CREAR UNA FUNCIÓN ANÓNIMA.
8. CALCULAR TOTAL CON IGV
-CALCULA EL PRECIO CON IGV (18%).
-REDONDEA A 2 DECIMALES USANDO NUMPY.
9. FUNCIÓN PRINCIPAL (MAIN())
-EJECUTA TODO EL PROGRAMA CUANDO EL ARCHIVO SE CORRE
DIRECTAMENTE.
-MUESTRA UN RESUMEN DEL PEDIDO, SUBTOTAL, DESCUENTO E IGV.
EJECUTABLE:
-EL GENERADOR PREPARAR(PEDIDO) GENERA PASO A PASO:
-"PREPARANDO CARAPULCRA"
-"AGREGANDO INGREDIENTES"
-"LISTO"
-CADA YIELD DEVUELVE UNO DE ESTOS TEXTOS.
-[Link](0.3) DA UNA PAUSA ENTRE PASOS, SIMULANDO COCINA.
-LA LISTA PEDIDOS CONTIENE LOS PRODUCTOS QUE EL USUARIO ELIGIÓ.
-SUBTOTAL ES LA SUMA DE LOS PRECIOS (TOTAL += PRECIO).
-DESCUENTO ES UNA FUNCIÓN LAMBDA QUE APLICA 10% SI TOTAL > 50:
Bibliografia
DEV‑SONI‑07. (2023). EASEMYORDER: PYTHON‑BASED RESTAURANT ORDER AND BILLING SYSTEM
[REPOSITORIO DE CÓDIGO]. GITHUB. HTTPS://[Link]/DEV-SONI-07/EASEMYORDER
LLAMOGA SÁNCHEZ, E. (2025). FUNCIONES Y MODULARIDAD EN PYTHON. PRESENTACIÓN DE
CLASE, CURSO LENGUAJE DE PROGRAMACIÓN II - POO, UNIVERSIDAD NACIONAL MAYOR DE SAN
MARCOS, FACULTAD DE INGENIERÍA ELECTRÓNICA Y ELÉCTRICA.
GRACIAS