Curso-lenguaje-python/python-ofensivo/00_ejercicios/03_proyecto_ventas_stock.py

93 lines
1.9 KiB
Python

#!/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")