Formatted black
This commit is contained in:
parent
f94d0aa917
commit
79bb636f39
BIN
__pycache__/function.cpython-311.pyc
Normal file
BIN
__pycache__/function.cpython-311.pyc
Normal file
Binary file not shown.
113
function.py
113
function.py
|
@ -8,26 +8,29 @@ init(autoreset=True)
|
||||||
|
|
||||||
# --------------------------заполнение-и-вывод-списка------------------------------------
|
# --------------------------заполнение-и-вывод-списка------------------------------------
|
||||||
|
|
||||||
|
|
||||||
def rand():
|
def rand():
|
||||||
range1 = int(input(Fore.GREEN + "Введите длинну списка: " + Fore.RESET))
|
range1 = int(input(Fore.GREEN + "Введите длинну списка: " + Fore.RESET))
|
||||||
range2 = int(input(Fore.GREEN + "Введите предел чисел: " + Fore.RESET))
|
range2 = int(input(Fore.GREEN + "Введите предел чисел: " + Fore.RESET))
|
||||||
massive = random.sample(range(0, range2), range1)
|
return random.sample(range(0, range2), range1)
|
||||||
return massive
|
|
||||||
|
|
||||||
def print_table(masive, num_cols):
|
def print_table(masive, num_cols):
|
||||||
massive = masive
|
massive = masive
|
||||||
num_rows = len(massive) // num_cols + (len(massive) % num_cols > 0)
|
num_rows = len(massive) // num_cols + (len(massive) % num_cols > 0)
|
||||||
for i in range(num_rows):
|
for i in range(num_rows):
|
||||||
row = massive[i*num_cols:(i+1)*num_cols]
|
row = massive[i * num_cols : (i + 1) * num_cols]
|
||||||
row += [''] * (num_cols - len(row)) # добавляем пустые элементы до num_cols
|
row += [""] * (num_cols - len(row)) # добавляем пустые элементы до num_cols
|
||||||
print((Fore.BLUE + '{:<7}' * num_cols).format(*row))
|
print((Fore.BLUE + "{:<7}" * num_cols).format(*row))
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------вывод-графиков------------------------------------------
|
# -----------------------------вывод-графиков------------------------------------------
|
||||||
|
|
||||||
def real_graph(masive): #вещественный график=-=--=-=-=-=-=-=
|
|
||||||
|
def real_graph(masive): # вещественный график=-=--=-=-=-=-=-=
|
||||||
massive = masive
|
massive = masive
|
||||||
max_height = max(massive)
|
max_height = max(massive)
|
||||||
length = len(massive)
|
length = len(massive)
|
||||||
for i in range(max_height, 0, -1):
|
for i in range(max_height, 0, -1):
|
||||||
for q in range(0, length):
|
for q in range(0, length):
|
||||||
if massive[q] >= i:
|
if massive[q] >= i:
|
||||||
|
@ -35,83 +38,108 @@ def real_graph(masive): #вещественный график=-=--=-=-=-=-=-=
|
||||||
else:
|
else:
|
||||||
print(Fore.RED + " ", end="")
|
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
|
massive = masive
|
||||||
|
|
||||||
# нахождение высоты
|
# нахождение высоты
|
||||||
max_height = max(massive) / 20 # делит таблицу на 20 частей по 5%
|
max_height = max(massive) / 20 # делит таблицу на 20 частей по 5%
|
||||||
|
|
||||||
# нахождение длинны
|
# нахождение длинны
|
||||||
chunks = np.array_split(massive, 20)# Разбиваем массив на 20 частей
|
chunks = np.array_split(massive, 20) # Разбиваем массив на 20 частей
|
||||||
max_values = np.zeros(20)# Инициализируем массивы для хранения максимальных значений и их индексов
|
max_values = np.zeros(
|
||||||
|
20
|
||||||
|
) # Инициализируем массивы для хранения максимальных значений и их индексов
|
||||||
max_indices = np.zeros(20)
|
max_indices = np.zeros(20)
|
||||||
if max_or_mean == "arf":
|
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":
|
elif max_or_mean == "max":
|
||||||
for i, chunk in enumerate(chunks): # Находим максимальное значение и его индекс в каждой части
|
for i, chunk in enumerate(
|
||||||
|
chunks
|
||||||
|
): # Находим максимальное значение и его индекс в каждой части
|
||||||
if len(chunk) > 0:
|
if len(chunk) > 0:
|
||||||
max_index = np.argmax(chunk)
|
max_index = np.argmax(chunk)
|
||||||
max_indices[i] = i*len(chunk) + max_index
|
max_indices[i] = i * len(chunk) + max_index
|
||||||
else:
|
else:
|
||||||
print(Fore.RED + "Приятель, делай выбор!")
|
print(Fore.RED + "Приятель, делай выбор!")
|
||||||
return
|
return
|
||||||
|
|
||||||
# строим график
|
# строим график
|
||||||
for i in range(21, 0, -1):
|
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):
|
for q in range(0, 20):
|
||||||
if max_or_mean == "arf":
|
if max_or_mean == "arf":
|
||||||
value = means[q]
|
value = means[q]
|
||||||
elif max_or_mean == "max":
|
elif max_or_mean == "max":
|
||||||
index_lenght = max_indices[q] # создаёт индекс длинны для сравненияс высотой
|
index_lenght = max_indices[
|
||||||
|
q
|
||||||
|
] # создаёт индекс длинны для сравненияс высотой
|
||||||
value = massive[int(index_lenght)]
|
value = massive[int(index_lenght)]
|
||||||
if len(massive) > 0 and value >= index_height:
|
if len(massive) > 0 and value >= index_height:
|
||||||
print(Fore.RED + "[]", end="")
|
print(Fore.RED + "[]", end="")
|
||||||
else:
|
else:
|
||||||
print(Fore.RED + " ", end="")
|
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:
|
while True:
|
||||||
if show_graph is not None:
|
if show_graph is not None:
|
||||||
print(Fore.GREEN + "Выводится ли график - ", Fore.BLUE + str(show_graph))
|
print(Fore.GREEN + "Выводится ли график - ", Fore.BLUE + str(show_graph))
|
||||||
else:
|
else:
|
||||||
print(Fore.GREEN + "Выводится ли график - ", Fore.BLUE + "None")
|
print(Fore.GREEN + "Выводится ли график - ", Fore.BLUE + "None")
|
||||||
show_graph = input(Fore.GREEN + "Строить график? - yes или no\n" + Fore.RESET)
|
show_graph = input(Fore.GREEN + "Строить график? - yes или no\n" + Fore.RESET)
|
||||||
if show_graph in ['yes', 'no']:
|
if show_graph in ["yes", "no"]:
|
||||||
break
|
break
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
print(Fore.RED + "Приятель, делай выбор!")
|
print(Fore.RED + "Приятель, делай выбор!")
|
||||||
return show_graph
|
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:
|
while True:
|
||||||
if max_or_mean is not None:
|
if max_or_mean is not None:
|
||||||
print(Fore.GREEN + "Тип графика - ", Fore.BLUE + str(max_or_mean))
|
print(Fore.GREEN + "Тип графика - ", Fore.BLUE + str(max_or_mean))
|
||||||
else:
|
else:
|
||||||
print(Fore.GREEN + "Тип графика - ", Fore.BLUE + "None")
|
print(Fore.GREEN + "Тип графика - ", Fore.BLUE + "None")
|
||||||
max_or_mean = input(Fore.GREEN + "Строить график по арифметической сумме(arf)\nили высшим точкам(max)?\n" + Fore.RESET)
|
max_or_mean = input(
|
||||||
if max_or_mean in ['arf', 'max']:
|
Fore.GREEN
|
||||||
|
+ "Строить график по арифметической сумме(arf)\nили высшим точкам(max)?\n"
|
||||||
|
+ Fore.RESET
|
||||||
|
)
|
||||||
|
if max_or_mean in ["arf", "max"]:
|
||||||
break
|
break
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
print(Fore.RED + "Приятель, делай выбор!")
|
print(Fore.RED + "Приятель, делай выбор!")
|
||||||
elif show_graph == 'no':
|
elif show_graph == "no":
|
||||||
max_or_mean = 'arf'
|
max_or_mean = "arf"
|
||||||
return max_or_mean
|
return max_or_mean
|
||||||
|
|
||||||
def num_column(num_cols): # параметр кол-ва столбцов таблице
|
|
||||||
while True:
|
def num_column(num_cols): # параметр кол-ва столбцов таблице
|
||||||
|
while True:
|
||||||
try:
|
try:
|
||||||
if num_cols is not None:
|
if num_cols is not None:
|
||||||
print(Fore.GREEN + "кол-во колнок - ", Fore.BLUE + str(num_cols))
|
print(Fore.GREEN + "кол-во колнок - ", Fore.BLUE + str(num_cols))
|
||||||
else:
|
else:
|
||||||
print(Fore.GREEN + "кол-во колнок - ", Fore.BLUE + "None")
|
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:
|
except ValueError:
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
print(Fore.RED + "Приятель, числа надо вводить, ЧИСЛА!\nЗаново!")
|
print(Fore.RED + "Приятель, числа надо вводить, ЧИСЛА!\nЗаново!")
|
||||||
|
@ -122,17 +150,19 @@ def num_column(num_cols): # параметр кол-ва столбцов таб
|
||||||
print(Fore.RED + "Приятель, не больше 10!")
|
print(Fore.RED + "Приятель, не больше 10!")
|
||||||
return num_cols
|
return num_cols
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------menu--------------------------------------------------
|
# -----------------------------menu--------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
def menu(show_graph, max_or_mean, num_cols):
|
def menu(show_graph, max_or_mean, num_cols):
|
||||||
while True:
|
while True:
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
menu = input(
|
menu = input(
|
||||||
Fore.GREEN +
|
Fore.GREEN
|
||||||
"\nДля продолжения нажмите Enter.\nЕсли хотите изменить настройки введите change\nпосмотреть настройки - set\nЕсли хотите завершить работу введите end.\n\n "
|
+ "\nДля продолжения нажмите Enter.\nЕсли хотите изменить настройки введите change\nпосмотреть настройки - set\nЕсли хотите завершить работу введите end.\n\n "
|
||||||
+ Fore.RED
|
+ Fore.RED
|
||||||
)
|
)
|
||||||
|
|
||||||
match menu:
|
match menu:
|
||||||
case "":
|
case "":
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
|
@ -141,18 +171,21 @@ def menu(show_graph, max_or_mean, num_cols):
|
||||||
case "set":
|
case "set":
|
||||||
setings(show_graph, max_or_mean, num_cols)
|
setings(show_graph, max_or_mean, num_cols)
|
||||||
case "change":
|
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":
|
case "end":
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
print(
|
print(
|
||||||
Fore.GREEN +
|
Fore.GREEN
|
||||||
"Спасибо за то, что воспользовались услугами\nкомпании ООО'Random'.\nС вас много деняг."
|
+ "Спасибо за то, что воспользовались услугами\nкомпании ООО'Random'.\nС вас много деняг."
|
||||||
)
|
)
|
||||||
breaker = False
|
breaker = False
|
||||||
return breaker, show_graph, max_or_mean, num_cols
|
return breaker, show_graph, max_or_mean, num_cols
|
||||||
case other:
|
case other:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def setings(show_graph, max_or_mean, num_cols):
|
def setings(show_graph, max_or_mean, num_cols):
|
||||||
while True:
|
while True:
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
|
@ -162,12 +195,13 @@ def setings(show_graph, max_or_mean, num_cols):
|
||||||
menu = input(Fore.GREEN + "\nДля возвращения нажмите Enter. ")
|
menu = input(Fore.GREEN + "\nДля возвращения нажмите Enter. ")
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
def changes(show_graph, max_or_mean, num_cols):
|
def changes(show_graph, max_or_mean, num_cols):
|
||||||
while True:
|
while True:
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
change = input(
|
change = input(
|
||||||
Fore.GREEN +
|
Fore.GREEN
|
||||||
"Если хотите выводить/не выводить график\nвведите graf\nЕсли хотите изменить тип графика\nвведите type\nЕсли хотите изменить кол-во столбцов\nвведите col\nЕсли хотите вернуться к работе то\nвведите cont\n"
|
+ "Если хотите выводить/не выводить график\nвведите graf\nЕсли хотите изменить тип графика\nвведите type\nЕсли хотите изменить кол-во столбцов\nвведите col\nЕсли хотите вернуться к работе то\nвведите cont\n"
|
||||||
+ Fore.RED
|
+ Fore.RED
|
||||||
)
|
)
|
||||||
match change:
|
match change:
|
||||||
|
@ -179,4 +213,3 @@ def changes(show_graph, max_or_mean, num_cols):
|
||||||
num_cols = num_column(num_cols)
|
num_cols = num_column(num_cols)
|
||||||
case "cont":
|
case "cont":
|
||||||
return show_graph, max_or_mean, num_cols
|
return show_graph, max_or_mean, num_cols
|
||||||
|
|
||||||
|
|
24
rand.py
24
rand.py
|
@ -6,26 +6,26 @@ init(autoreset=True)
|
||||||
|
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
|
|
||||||
masive = [] # инициализация основного масива
|
masive = [] # инициализация основного масива
|
||||||
|
|
||||||
show_graph = None # параметр базового вывода графика
|
show_graph = None # параметр базового вывода графика
|
||||||
show_graph = function.graf(show_graph)
|
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)
|
max_or_mean = function.type_graf(show_graph, max_or_mean)
|
||||||
|
|
||||||
num_cols = None # параметр кол-ва столбцов таблице
|
num_cols = None # параметр кол-ва столбцов таблице
|
||||||
num_cols = function.num_column(num_cols)
|
num_cols = function.num_column(num_cols)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
masive = function.rand() # заполнение массива случайными числами
|
masive = function.rand() # заполнение массива случайными числами
|
||||||
match show_graph:
|
match show_graph:
|
||||||
case "yes":
|
case "yes":
|
||||||
function.print_table(masive, num_cols)
|
function.print_table(masive, num_cols)
|
||||||
max_height = max(masive)
|
max_height = max(masive)
|
||||||
length = len(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)
|
function.percentage_graph(masive, max_or_mean)
|
||||||
else:
|
else:
|
||||||
function.real_graph(masive)
|
function.real_graph(masive)
|
||||||
|
@ -39,10 +39,12 @@ while True:
|
||||||
os.system("cls")
|
os.system("cls")
|
||||||
print(Fore.RED + "Приятель, внимательнее! \nЗаново!")
|
print(Fore.RED + "Приятель, внимательнее! \nЗаново!")
|
||||||
continue
|
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:
|
if breaker == False:
|
||||||
break
|
break
|
||||||
|
|
||||||
# ВСЁ ГОТОВО)
|
# ВСЁ ГОТОВО)
|
||||||
|
|
Loading…
Reference in a new issue