Advertisement
Korotkodul

A. Часть 3. 12 месяцев_DRAFT

Feb 23rd, 2025 (edited)
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.27 KB | None | 0 0
  1. import numpy as np
  2. import calendar
  3. months_list = np.array([calendar.month_name[i] for i in range(1, 13)])
  4.  
  5. class InconsistentDataError(Exception):
  6.     pass
  7.  
  8. def sort_month_names_by_profits(
  9.     amounts_of_sold_subscriptions: np.ndarray,
  10.     subscriptions_prices: np.ndarray,
  11.     ascending: bool = True,
  12. ) -> list[str]:
  13.     if amounts_of_sold_subscriptions.shape[1] != subscriptions_prices.shape[1]:
  14.         raise InconsistentDataError
  15.     income = amounts_of_sold_subscriptions * subscriptions_prices
  16.     income_per_month = np.sum(income, axis=1)
  17.     print("income")
  18.     print(income)
  19.     print("income_per_month")
  20.     print(income_per_month)
  21.     indices = np.argsort(income_per_month)
  22.     print("indices")
  23.     print(indices)
  24.     res = months_list[indices]
  25.     if not ascending:
  26.         res = res[::-1]
  27.     print()
  28.     print()
  29.     print()
  30.     return res
  31.  
  32. amounts_of_sold_subscriptions = np.random.randint(0, 10, size=(12, 3))
  33. subscriptions_prices = np.random.randint(1, 10, size=(1, 3))
  34. print("amounts_of_sold_subscriptions")
  35. print(amounts_of_sold_subscriptions)
  36. print("subscriptions_prices")
  37. print(subscriptions_prices)
  38.  
  39. ascending = False
  40. res = sort_month_names_by_profits(amounts_of_sold_subscriptions, subscriptions_prices, ascending)
  41. print("res", res)
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement