форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
50 строки
1.3 KiB
Python
50 строки
1.3 KiB
Python
import os
|
|
import module3M1
|
|
|
|
def reader(filename):
|
|
sample = []
|
|
with open(filename, 'r', encoding = 'utf-8') as file:
|
|
for line in file:
|
|
vals = line.strip().split()
|
|
for val in vals:
|
|
sample.append(float(val))
|
|
return sample
|
|
|
|
def display(bounds,c):
|
|
maxcount =max(c)
|
|
|
|
for i,count in enumerate(c):
|
|
lowers = bounds[i]
|
|
uppers =bounds[i+1]
|
|
bar = '[|]'*int(count)
|
|
print(f'({lowers}, {uppers}) : {count} элементов | {bar}')
|
|
|
|
|
|
def process():
|
|
while True:
|
|
filename = input('Имя файла:')
|
|
if os.path.exists(filename):
|
|
break
|
|
print(f'Еще раз, {filename} неверное название')
|
|
|
|
sample = reader(filename)
|
|
|
|
while True:
|
|
m =int(input('Введите число разбиений'))
|
|
if m > 0:
|
|
break
|
|
else:
|
|
('Введите ненулевое целое значение')
|
|
|
|
stats =module3M1.calc(sample)
|
|
|
|
print('Максимум: ', stats['max'])
|
|
print('Минимум: ', stats['min'])
|
|
print('Размах: ', stats['range'])
|
|
print('СО: ', stats['deviation'])
|
|
print('Отношение размаха к отклоеннию: ', stats['range to stddev'])
|
|
bounds, c = module3M1.intervals(sample,m)
|
|
|
|
display(bounds,c)
|
|
|