# Тест по модулю 2.  
***Вариант 8***  

M2_8
1)	Создайте множество с 40 элементами - случайными  числами, равномерно распределенными на интервале от -20 до +10. Числа должны быть округлены до двух знаков после точки.

2)	Запросите у пользователя и введите имя бинарного файла для сохранения множества. Если во введенном имени есть пробелы, замените их на пустые строки.

3)	Запишите множество в бинарный файл с указанным именем.

4)	Удалите из памяти созданное множество.

5)	Прочитайте множество из файла и рассчитайте по его элементам среднее значение. Отобразите его на экране по шаблону: " По <число элементов> среднее = <рассчитанное значение>". Выводимое среднее округлить до двух знаков после точки.


```python
import random
import pickle
import os

#Создание случайного множества
random_set = {round(random.uniform(-20, 10), 2) for _ in range(40)}
print("Создано случайное множество:", random_set)

#Создание бинарного файла
filename = input("Введите имя бинарного файла: ")
filename = filename.replace(" ", "")

#Запись в файл
fp=open(os.getcwd()+ '/TEMA6/' + filename, 'wb')
pickle.dump(random_set,fp)
fp.close()

#Удаление множества из памяти
del random_set
print("Множество удалено из памяти:", dir())

#Восстановление множества из бинарного файла
fp=open(os.getcwd()+ '/TEMA6/' + filename, 'rb')
random_set = pickle.load(fp)
fp.close()
print("Множество восстановлено из бинарного файла:", random_set)

#Вычисление среднего и вывод на экран
sred=round(sum(random_set)/len(random_set),2)
print(f'\nПо {len(random_set)} среднее = {sred}')
```

Ответ программы:  
```shell
Создано случайное множество: {-0.65, -0.91, 2.79, 1.01, 4.36, 5.77, 6.0, 7.94, 7.71, 7.77, 5.92, 2.69, 7.47, 5.29, 0.83, 3.01, -0.48, -6.31, -4.12, 0.88, -3.69, -8.01, -7.68, -6.59, -19.43, -19.78, -17.23, -16.84, -15.69, -15.05, -18.98, -12.96, -19.37, -11.0, -8.89, -7.07, -6.5, -4.4, -3.56, -1.43}

Введите имя бинарного файла: binary

Множество удалено из памяти: ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'filename', 'fp', 'os', 'pickle', 'random']

Множество восстановлено из бинарного файла: {-0.65, -0.91, 2.79, 1.01, 4.36, 5.77, 6.0, 7.94, 7.71, 7.77, 5.92, 2.69, 7.47, 5.29, 3.01, -3.56, -0.48, 0.88, -8.89, -7.68, -7.07, -6.59, -6.5, -4.4, -19.43, -19.78, -17.23, -16.84, -15.69, -15.05, -18.98, -12.96, -19.37, -11.0, -8.01, 0.83, -6.31, -4.12, -3.69, -1.43}

По 40 среднее = -4.18
```

