diff --git a/python-ofensivo/00_ejercicios/03_proyecto_ventas_stock.py b/python-ofensivo/00_ejercicios/03_proyecto_ventas_stock.py new file mode 100644 index 0000000..5f2f691 --- /dev/null +++ b/python-ofensivo/00_ejercicios/03_proyecto_ventas_stock.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +""" +__Colecciones y estructuras de datos de Python__ +Proyecto sumario de ventas y stock de juegos +""" + +# Juegos +juegos = [ + "Super Mario Bros", + "Zelda", + "Cyberpunk 2077", + "Final Fantasy" +] + +# Géneros +generos = { + "Super Mario Bros": "Aventuras", + "Zelda": "Aventuras", + "Cyberpunk 2077": "RPG", + "Final Fantasy": "RPG" +} + +# Ventas y Stock +ventas_stock = { + "Super Mario Bros": ( + 100, + 50 + ), + "Zelda": ( + 50, + 25 + ), + "Cyberpunk 2077": ( + 1000, + 500 + ), + "Final Fantasy": ( + 500, + 250 + ) +} + +# Clientes +clientes = { + "Super Mario Bros": { + "Sergi", + "Jose", + "Maria" + }, + "Zelda": { + "Sergi", + "Ramón", + "Jesus" + }, + "Cyberpunk 2077": { + "Fernando", + "Jose", + "Maria" + }, + "Final Fantasy": { + "Eduardo", + "Jose", + "Maria" + } +} + + +# Sumario +def sumario(juego): + print(f"[{juegos.index(juego) + 1}] {juego}") + print(f"\t[+] Género: {generos[juego]}") + print(f"\t[+] Ventas: {ventas_stock[juego][0]} unidades") + print(f"\t[+] Stock: {ventas_stock[juego][1]} unidades") + print(f"\t[+] Clientes totales: {len(clientes[juego])}") + print(f"\t[+] Nombre de clientes: {', '.join(clientes[juego])}") + print() + +print("Sumario de TODOS los juegos") +for juego in juegos: + sumario(juego) + + +print("Sumario de los 2 juegos con MÁS STOCK") +for juego in sorted(ventas_stock, key=lambda x: ventas_stock[x][1], reverse=True)[:2]: + sumario(juego) + +ventas_totales = lambda: sum(ventas for ventas, _ in ventas_stock.values()) + +print("DATOS TOTALES") +print(f"Total de juegos: {len(juegos)}") +print(f"Total de ventas: {ventas_totales()} unidades") +print(f"Total de stock: {sum([ventas_stock[juego][1] for juego in ventas_stock])} unidades")