From 79bb636f39ae67a08b7409ba030b1a8f103188cd Mon Sep 17 00:00:00 2001 From: PeseC Date: Tue, 7 Mar 2023 00:46:43 +0400 Subject: [PATCH] Formatted black --- __pycache__/function.cpython-311.pyc | Bin 0 -> 11153 bytes function.py | 113 +++++++++++++++++---------- rand.py | 24 +++--- 3 files changed, 86 insertions(+), 51 deletions(-) create mode 100644 __pycache__/function.cpython-311.pyc diff --git a/__pycache__/function.cpython-311.pyc b/__pycache__/function.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d41cdddb129bb8526257fc504917ad1132749f9 GIT binary patch literal 11153 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 literal 0 HcmV?d00001 diff --git a/function.py b/function.py index 5ed5236..b28cbbd 100644 --- a/function.py +++ b/function.py @@ -8,26 +8,29 @@ init(autoreset=True) # --------------------------заполнение-и-вывод-списка------------------------------------ + def rand(): range1 = int(input(Fore.GREEN + "Введите длинну списка: " + Fore.RESET)) range2 = int(input(Fore.GREEN + "Введите предел чисел: " + Fore.RESET)) - massive = random.sample(range(0, range2), range1) - return massive + return random.sample(range(0, range2), range1) + def print_table(masive, num_cols): massive = masive num_rows = len(massive) // num_cols + (len(massive) % num_cols > 0) for i in range(num_rows): - row = massive[i*num_cols:(i+1)*num_cols] - row += [''] * (num_cols - len(row)) # добавляем пустые элементы до num_cols - print((Fore.BLUE + '{:<7}' * num_cols).format(*row)) + row = massive[i * num_cols : (i + 1) * num_cols] + row += [""] * (num_cols - len(row)) # добавляем пустые элементы до num_cols + print((Fore.BLUE + "{:<7}" * num_cols).format(*row)) + # -----------------------------вывод-графиков------------------------------------------ -def real_graph(masive): #вещественный график=-=--=-=-=-=-=-= + +def real_graph(masive): # вещественный график=-=--=-=-=-=-=-= massive = masive max_height = max(massive) - length = len(massive) + length = len(massive) for i in range(max_height, 0, -1): for q in range(0, length): if massive[q] >= i: @@ -35,83 +38,108 @@ def real_graph(masive): #вещественный график=-=--=-=-=-=-=-= else: print(Fore.RED + " ", end="") - print(' ', Fore.BLUE + str(i)) + print(" ", Fore.BLUE + str(i)) -def percentage_graph(masive, max_or_mean): #процентный график=-=--=-=-=-=-=-= + +def percentage_graph(masive, max_or_mean): # процентный график=-=--=-=-=-=-=-= massive = masive # нахождение высоты - max_height = max(massive) / 20 # делит таблицу на 20 частей по 5% + max_height = max(massive) / 20 # делит таблицу на 20 частей по 5% # нахождение длинны - chunks = np.array_split(massive, 20)# Разбиваем массив на 20 частей - max_values = np.zeros(20)# Инициализируем массивы для хранения максимальных значений и их индексов + chunks = np.array_split(massive, 20) # Разбиваем массив на 20 частей + max_values = np.zeros( + 20 + ) # Инициализируем массивы для хранения максимальных значений и их индексов max_indices = np.zeros(20) if max_or_mean == "arf": - means = [int(np.nanmean(chunk)) for chunk in chunks]# вычисляем среднее арифметическое каждого подсписка + means = [ + int(np.nanmean(chunk)) for chunk in chunks + ] # вычисляем среднее арифметическое каждого подсписка elif max_or_mean == "max": - for i, chunk in enumerate(chunks): # Находим максимальное значение и его индекс в каждой части + for i, chunk in enumerate( + chunks + ): # Находим максимальное значение и его индекс в каждой части if len(chunk) > 0: max_index = np.argmax(chunk) - max_indices[i] = i*len(chunk) + max_index + max_indices[i] = i * len(chunk) + max_index else: print(Fore.RED + "Приятель, делай выбор!") return # строим график for i in range(21, 0, -1): - index_height = int((max_height * i) - max_height) # создаёт индекс для сравнения высот + index_height = int( + (max_height * i) - max_height + ) # создаёт индекс для сравнения высот for q in range(0, 20): if max_or_mean == "arf": value = means[q] elif max_or_mean == "max": - index_lenght = max_indices[q] # создаёт индекс длинны для сравненияс высотой + index_lenght = max_indices[ + q + ] # создаёт индекс длинны для сравненияс высотой value = massive[int(index_lenght)] if len(massive) > 0 and value >= index_height: print(Fore.RED + "[]", end="") else: print(Fore.RED + " ", end="") - print(' ', Fore.BLUE + str((i-1)*5), Fore.BLUE + '%') + print(" ", Fore.BLUE + str((i - 1) * 5), Fore.BLUE + "%") + # -----------------------------назначение-настроек---------------------------------------------- -def graf(show_graph): # параметр базового вывода графика + +def graf(show_graph): # параметр базового вывода графика while True: if show_graph is not None: print(Fore.GREEN + "Выводится ли график - ", Fore.BLUE + str(show_graph)) else: print(Fore.GREEN + "Выводится ли график - ", Fore.BLUE + "None") show_graph = input(Fore.GREEN + "Строить график? - yes или no\n" + Fore.RESET) - if show_graph in ['yes', 'no']: + if show_graph in ["yes", "no"]: break os.system("cls") print(Fore.RED + "Приятель, делай выбор!") return show_graph -def type_graf(show_graph, max_or_mean): # параметр типа графика - if show_graph == 'yes': + +def type_graf(show_graph, max_or_mean): # параметр типа графика + if show_graph == "yes": while True: if max_or_mean is not None: print(Fore.GREEN + "Тип графика - ", Fore.BLUE + str(max_or_mean)) else: print(Fore.GREEN + "Тип графика - ", Fore.BLUE + "None") - max_or_mean = input(Fore.GREEN + "Строить график по арифметической сумме(arf)\nили высшим точкам(max)?\n" + Fore.RESET) - if max_or_mean in ['arf', 'max']: + max_or_mean = input( + Fore.GREEN + + "Строить график по арифметической сумме(arf)\nили высшим точкам(max)?\n" + + Fore.RESET + ) + if max_or_mean in ["arf", "max"]: break os.system("cls") print(Fore.RED + "Приятель, делай выбор!") - elif show_graph == 'no': - max_or_mean = 'arf' + elif show_graph == "no": + max_or_mean = "arf" return max_or_mean -def num_column(num_cols): # параметр кол-ва столбцов таблице - while True: + +def num_column(num_cols): # параметр кол-ва столбцов таблице + while True: try: if num_cols is not None: print(Fore.GREEN + "кол-во колнок - ", Fore.BLUE + str(num_cols)) else: print(Fore.GREEN + "кол-во колнок - ", Fore.BLUE + "None") - num_cols = int(input(Fore.GREEN + "Укажите кол-во колнок в таблиц\n(не больше 10) - \n" + Fore.RESET)) + num_cols = int( + input( + Fore.GREEN + + "Укажите кол-во колнок в таблиц\n(не больше 10) - \n" + + Fore.RESET + ) + ) except ValueError: os.system("cls") print(Fore.RED + "Приятель, числа надо вводить, ЧИСЛА!\nЗаново!") @@ -122,17 +150,19 @@ def num_column(num_cols): # параметр кол-ва столбцов таб print(Fore.RED + "Приятель, не больше 10!") return num_cols + # -----------------------------menu-------------------------------------------------- + def menu(show_graph, max_or_mean, num_cols): while True: os.system("cls") menu = input( - Fore.GREEN + - "\nДля продолжения нажмите Enter.\nЕсли хотите изменить настройки введите change\nпосмотреть настройки - set\nЕсли хотите завершить работу введите end.\n\n " - + Fore.RED - ) - + Fore.GREEN + + "\nДля продолжения нажмите Enter.\nЕсли хотите изменить настройки введите change\nпосмотреть настройки - set\nЕсли хотите завершить работу введите end.\n\n " + + Fore.RED + ) + match menu: case "": os.system("cls") @@ -141,18 +171,21 @@ def menu(show_graph, max_or_mean, num_cols): case "set": setings(show_graph, max_or_mean, num_cols) case "change": - show_graph, max_or_mean, num_cols = changes(show_graph, max_or_mean, num_cols) + show_graph, max_or_mean, num_cols = changes( + show_graph, max_or_mean, num_cols + ) case "end": os.system("cls") print( - Fore.GREEN + - "Спасибо за то, что воспользовались услугами\nкомпании ООО'Random'.\nС вас много деняг." + Fore.GREEN + + "Спасибо за то, что воспользовались услугами\nкомпании ООО'Random'.\nС вас много деняг." ) breaker = False return breaker, show_graph, max_or_mean, num_cols case other: pass + def setings(show_graph, max_or_mean, num_cols): while True: os.system("cls") @@ -162,12 +195,13 @@ def setings(show_graph, max_or_mean, num_cols): menu = input(Fore.GREEN + "\nДля возвращения нажмите Enter. ") break + def changes(show_graph, max_or_mean, num_cols): while True: os.system("cls") change = input( - Fore.GREEN + - "Если хотите выводить/не выводить график\nвведите graf\nЕсли хотите изменить тип графика\nвведите type\nЕсли хотите изменить кол-во столбцов\nвведите col\nЕсли хотите вернуться к работе то\nвведите cont\n" + Fore.GREEN + + "Если хотите выводить/не выводить график\nвведите graf\nЕсли хотите изменить тип графика\nвведите type\nЕсли хотите изменить кол-во столбцов\nвведите col\nЕсли хотите вернуться к работе то\nвведите cont\n" + Fore.RED ) match change: @@ -179,4 +213,3 @@ def changes(show_graph, max_or_mean, num_cols): num_cols = num_column(num_cols) case "cont": return show_graph, max_or_mean, num_cols - diff --git a/rand.py b/rand.py index 941fcc9..fae053c 100644 --- a/rand.py +++ b/rand.py @@ -6,26 +6,26 @@ init(autoreset=True) os.system("cls") -masive = [] # инициализация основного масива +masive = [] # инициализация основного масива -show_graph = None # параметр базового вывода графика +show_graph = None # параметр базового вывода графика show_graph = function.graf(show_graph) -max_or_mean = None # параметр типа графика +max_or_mean = None # параметр типа графика max_or_mean = function.type_graf(show_graph, max_or_mean) -num_cols = None # параметр кол-ва столбцов таблице +num_cols = None # параметр кол-ва столбцов таблице num_cols = function.num_column(num_cols) while True: - try: - masive = function.rand() # заполнение массива случайными числами + try: + masive = function.rand() # заполнение массива случайными числами match show_graph: case "yes": function.print_table(masive, num_cols) max_height = max(masive) length = len(masive) - if max_height > 20 or length > 20: + if max_height > 20 or length > 20: function.percentage_graph(masive, max_or_mean) else: function.real_graph(masive) @@ -39,10 +39,12 @@ while True: os.system("cls") print(Fore.RED + "Приятель, внимательнее! \nЗаново!") continue - - breaker, show_graph, max_or_mean, num_cols = function.menu(show_graph, max_or_mean, num_cols) - + + breaker, show_graph, max_or_mean, num_cols = function.menu( + show_graph, max_or_mean, num_cols + ) + if breaker == False: break -# ВСЁ ГОТОВО) \ No newline at end of file +# ВСЁ ГОТОВО)