Advertisement
Korotkodul

A. Часть 2. Фиксируем прибыль

Feb 22nd, 2025 (edited)
618
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.62 KB | None | 0 0
  1. from typing import Optional
  2.  
  3. import numpy as np
  4. from enum import Enum
  5. from numbers import Real
  6.  
  7. class InconsistentDataError(Exception):
  8.     pass
  9.  
  10. class Strategies(Enum):
  11.     BY_GOOD = "BY_GOOD"   # придумайте значение enum'а
  12.     BY_MONTH = "BY_MONTH"  # придумайте значение enum'а
  13.  
  14.  
  15. def get_mean_profit(
  16.         amounts_of_sold_subscriptions: np.ndarray,
  17.         subscriptions_prices: np.ndarray,
  18.         strategy: Optional[Strategies] = None,
  19. ):
  20.     if amounts_of_sold_subscriptions.shape[1] != subscriptions_prices.shape[1]:
  21.         raise InconsistentDataError
  22.     print("amounts_of_sold_subscriptions")
  23.     print(amounts_of_sold_subscriptions)
  24.     print("subscriptions_prices")
  25.     print(subscriptions_prices)
  26.     print()
  27.     income = amounts_of_sold_subscriptions * subscriptions_prices
  28.     income_per_month = np.sum(income, axis=1)
  29.     income_per_year = np.sum(income_per_month)
  30.     print("income")
  31.     print(income)
  32.     print("income_per_month")
  33.     print(income_per_month)
  34.     print("income_per_year")
  35.     print(income_per_year)
  36.     print()
  37.     amounts_of_sold_subscriptions_per_month = np.sum(amounts_of_sold_subscriptions, axis = 1)
  38.     amounts_of_sold_subscriptions_per_year = np.sum(amounts_of_sold_subscriptions_per_month)
  39.     print("amounts_of_sold_subscriptions_per_month")
  40.     print(amounts_of_sold_subscriptions_per_month)
  41.     print("amounts_of_sold_subscriptions_per_year")
  42.     print(amounts_of_sold_subscriptions_per_year)
  43.     print()
  44.     amounts_of_sold_subscriptions_per_service = np.sum(amounts_of_sold_subscriptions, axis = 0)
  45.     income_per_servise_per_year = np.sum(income, axis = 0)
  46.     print("amounts_of_sold_subscriptions_per_service")
  47.     print(amounts_of_sold_subscriptions_per_service)
  48.     print("income_per_servise_per_year")
  49.     print(income_per_servise_per_year)
  50.     print()
  51.     res = None
  52.     if strategy == None:
  53.         print("None")
  54.         res = income_per_year / amounts_of_sold_subscriptions_per_year
  55.     elif strategy == Strategies.BY_GOOD:
  56.         print("BY_GOOD")
  57.         res = income_per_servise_per_year / amounts_of_sold_subscriptions_per_service
  58.     elif strategy == Strategies.BY_MONTH:
  59.         print("BY_MONTH")
  60.         res = income_per_month / amounts_of_sold_subscriptions_per_month
  61.     print("res")
  62.     print(res)
  63.     print()
  64.     print()
  65.     print()
  66.     return res
  67.  
  68.  
  69. amounts_of_sold_subscriptions = np.random.randint(0, 10, size=(12, 3))
  70. subscriptions_prices = np.random.randint(1, 10, size=(1, 3))
  71.  
  72. kind = Strategies.BY_GOOD
  73. res = get_mean_profit(amounts_of_sold_subscriptions, subscriptions_prices, kind)
  74. print("res", res)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement