Desarrollo de Métodos para Calcular Rentabilidad y Segmentar Clientes Inversores
Clasificado en Economía
Escrito el en
español con un tamaño de 2,93 KB
Gestión de Productos e Inversiones: Implementación de Lógica de Negocio
Actualización de la Rentabilidad de un Producto
A continuación, se presenta la lógica para actualizar el porcentaje de rentabilidad de un producto específico, asegurando que el nuevo valor se encuentre dentro del rango permitido (1% a 100%).
if nuevo_porcentaje < 1 or nuevo_porcentaje > 100: # Verifica que esté en el rango permitido
return False
for producto in self.productos: # Busca el producto por identificador
if producto.id == identificador:
producto.rentabilidad = nuevo_porcentaje # Actualiza la rentabilidad
return True # Retorna éxito si se actualizó
return False # Retorna False si no se encontró el producto
Cálculo del Promedio de Rentabilidad de Inversiones por Cliente
3# Calcular el promedio de rentabilidad de los productos de un cliente. Este método calcula el promedio de rentabilidad de los productos en los que un cliente ha invertido.
Método: promedio_rentabilidad_cliente(self, cedula)
def promedio_rentabilidad_cliente(self, cedula):
total_rentabilidad = 0 # Variable acumuladora de rentabilidades
cantidad_productos = 0 # Contador de productos en los que ha invertido el cliente
for inversion in self.inversiones: # Recorre todas las inversiones
if inversion.cliente.cedula == cedula: # Verifica si la inversión pertenece al cliente
total_rentabilidad += inversion.producto.rentabilidad # Suma la rentabilidad del producto
cantidad_productos += 1 # Aumenta el contador de productos
if cantidad_productos > 0: # Si el cliente tiene inversiones, calcula el promedio
return total_rentabilidad / cantidad_productos
else:
return 0 # Si no tiene inversiones, retorna 0
Filtro de Clientes por Tipo de Producto y Rentabilidad Mínima
4# Obtener clientes que han invertido en productos de cierto tipo y rentabilidad. Este método devuelve una lista de clientes que han invertido en productos de un tipo específico y cuya rentabilidad mensual sea superior a un porcentaje dado.
Método: clientes_por_tipo_y_rentabilidad(self, tipo_producto, porcentaje_minimo)
def clientes_por_tipo_y_rentabilidad(self, tipo_producto, porcentaje_minimo):
clientes_validos = set() # Se usa un conjunto (set) para evitar duplicados
for inversion in self.inversiones: # Recorre todas las inversiones
producto = inversion.producto # Obtiene el producto de la inversión
if producto.tipo == tipo_producto and producto.rentabilidad > porcentaje_minimo:
clientes_validos.add(inversion.cliente) # Agrega al cliente si cumple la condición
return list(clientes_validos) # Retorna la lista de clientes únicos