Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from typing import Optional
- import numpy as np
- from enum import Enum
- from numbers import Real
- class InconsistentDataError(Exception):
- pass
- class Strategies(Enum):
- BY_GOOD = "BY_GOOD" # придумайте значение enum'а
- BY_MONTH = "BY_MONTH" # придумайте значение enum'а
- def get_mean_profit(
- amounts_of_sold_subscriptions: np.ndarray,
- subscriptions_prices: np.ndarray,
- strategy: Optional[Strategies] = None,
- ):
- if amounts_of_sold_subscriptions.shape[1] != subscriptions_prices.shape[1]:
- raise InconsistentDataError
- print("amounts_of_sold_subscriptions")
- print(amounts_of_sold_subscriptions)
- print("subscriptions_prices")
- print(subscriptions_prices)
- print()
- income = amounts_of_sold_subscriptions * subscriptions_prices
- income_per_month = np.sum(income, axis=1)
- income_per_year = np.sum(income_per_month)
- print("income")
- print(income)
- print("income_per_month")
- print(income_per_month)
- print("income_per_year")
- print(income_per_year)
- print()
- amounts_of_sold_subscriptions_per_month = np.sum(amounts_of_sold_subscriptions, axis = 1)
- amounts_of_sold_subscriptions_per_year = np.sum(amounts_of_sold_subscriptions_per_month)
- print("amounts_of_sold_subscriptions_per_month")
- print(amounts_of_sold_subscriptions_per_month)
- print("amounts_of_sold_subscriptions_per_year")
- print(amounts_of_sold_subscriptions_per_year)
- print()
- amounts_of_sold_subscriptions_per_service = np.sum(amounts_of_sold_subscriptions, axis = 0)
- income_per_servise_per_year = np.sum(income, axis = 0)
- print("amounts_of_sold_subscriptions_per_service")
- print(amounts_of_sold_subscriptions_per_service)
- print("income_per_servise_per_year")
- print(income_per_servise_per_year)
- print()
- res = None
- if strategy == None:
- print("None")
- res = income_per_year / amounts_of_sold_subscriptions_per_year
- elif strategy == Strategies.BY_GOOD:
- print("BY_GOOD")
- res = income_per_servise_per_year / amounts_of_sold_subscriptions_per_service
- elif strategy == Strategies.BY_MONTH:
- print("BY_MONTH")
- res = income_per_month / amounts_of_sold_subscriptions_per_month
- print("res")
- print(res)
- print()
- print()
- print()
- return res
- amounts_of_sold_subscriptions = np.random.randint(0, 10, size=(12, 3))
- subscriptions_prices = np.random.randint(1, 10, size=(1, 3))
- kind = Strategies.BY_GOOD
- res = get_mean_profit(amounts_of_sold_subscriptions, subscriptions_prices, kind)
- print("res", res)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement