Professional Documents
Culture Documents
1. Suponga que ha sido contratado como ingeniero de software para diseñar y administrar el sistema de
datos de una pequeña tienda de pintura llamada "ColorArte". Su tarea es crear una estructura de datos
en Python que permita gestionar el inventario de pinturas, así como analizar las cantidades disponibles
y las ventas proyectadas.
obtener_pinturas_necesarias() devuelve una lista de las pinturas que necesitan ser vendidas en el mes
actual
se espera que defina la estructura de datos adecuada, implemente las funciones mencionadas y realice
pruebas para verificar su correcto funcionamiento.
Recuerde que el objetivo principal es proporcionar a la tienda de pintura una forma eficiente de gestionar
su inventario y tomar decisiones informadas sobre qué pinturas deben ser vendidas y cuáles no en el
mes actual.
# Función para obtener las pinturas que necesitan ser vendidas en el mes actual
def obtener_pinturas_necesarias(diccionario_pinturas):
pinturas_necesarias = []
for clave, atributos in diccionario_pinturas.items():
cantidad_disponible = atributos[0]
ventas_proyectadas_mes = atributos[2]
if cantidad_disponible <= 0 and ventas_proyectadas_mes > 0:
pinturas_necesarias.append(clave)
return pinturas_necesarias
# Función para obtener las pinturas que no necesitan ser vendidas en el mes actual
def obtener_pinturas_no_necesarias(diccionario_pinturas):
pinturas_no_necesarias = []
for clave, atributos in diccionario_pinturas.items():
cantidad_disponible = atributos[0]
ventas_proyectadas_mes = atributos[2]
if cantidad_disponible > 0 or ventas_proyectadas_mes == 0:
pinturas_no_necesarias.append(clave)
return pinturas_no_necesarias
def encontrar_parejas_ineficiente(registros):
parejas = [] # Lista para almacenar las parejas de avistamientos
iteraciones = 0 # Contador de iteraciones
# Ejemplo de uso
registros = [("León", "2023-05-15"), ("Tigre", "2023-05-16"), ("León", "2023-05-
17"), ("Leopardo", "2023-05-18")]
parejas_ineficiente, iteraciones_ineficiente =
encontrar_parejas_ineficiente(registros)
def encontrar_parejas_eficiente(registros):
parejas = [] # Lista para almacenar las parejas de avistamientos
iteraciones = 0 # Contador de iteraciones
especies = {} # Diccionario para almacenar las especies y las fechas de
avistamiento
# Ejemplo de uso
registros = [("León", "2023-05-15"), ("Tigre", "2023-05-16"), ("León",
"2023-05-17"), ("Leopardo", "2023-05-18")]
parejas_eficiente, iteraciones_eficiente =
encontrar_parejas_eficiente(registros)
Ejemplo:
inventario = {
'Ficción': {
'1984': ['George Orwell', 10],
'Cien años de soledad': ['Gabriel García Márquez', 15]
},
'Misterio': {
'El código Da Vinci': ['Dan Brown', 8],
'La chica del tren': ['Paula Hawkins', 12]
},
'Romance': {
'Orgullo y prejuicio': ['Jane Austen', 5],
'Bajo la misma estrella': ['John Green', 3]
}
}
Tu objetivo es implementar dos de las siguientes funciones, que permitan administrar esta la base de
datos:
• agregar_libro(genero, titulo, autor, stock): Agrega un libro al inventario. Si el género literario no
existe, se crea automáticamente.
• eliminar_libro(genero, titulo): Elimina un libro específico del inventario. Si el género se queda sin
libros, se elimina también.
• actualizar_stock(genero, titulo, cantidad): Actualiza el stock de un libro específico en el inventario.
• obtener_stock_total(): Calcula y devuelve el stock total de libros en el inventario.
• obtener_stock(genero, titulo): devuelve el stock de un libro en el inventario.
def mostrar_inventario():
for genero, libros_genero in inventario.items():
print(genero)
for libro in libros_genero:
print(f"- {libro['titulo']} ({libro['autor']}) - Stock:
{libro['stock']}")
# Ejemplo de uso
# Agregar libros
agregar_libro('Ficción', '1984', 'George Orwell', 10)
agregar_libro('Ficción', 'Cien años de soledad', 'Gabriel García Márquez',
15)
agregar_libro('Misterio', 'El código Da Vinci', 'Dan Brown', 8)
agregar_libro('Misterio', 'La chica del tren', 'Paula Hawkins', 12)
agregar_libro('Romance', 'Orgullo y prejuicio', 'Jane Austen', 5)
agregar_libro('Romance', 'Bajo la misma estrella', 'John Green', 3)
# Eliminar libro
eliminar_libro('Misterio', 'La chica del tren')
Crear un diccionario:
Puedes crear un diccionario utilizando la siguiente sintaxis:
valor = mi_diccionario["clave"]
mi_diccionario["clave"] = nuevo_valor
mi_diccionario["nueva_clave"] = nuevo_valor
del mi_diccionario["clave"]
if "clave" in mi_diccionario:
# La clave está presente
else:
# La clave no está presente
Recorrer un diccionario:
Puedes recorrer un diccionario utilizando un bucle for y accediendo a las claves y valores:
valor = mi_diccionario["clave1"]["subclave1"]
mi_diccionario["clave1"]["subclave1"] = nuevo_valor
mi_diccionario["clave1"]["nueva_subclave"] = nuevo_valor
del mi_diccionario["clave1"]["subclave1"]