# Контрольное задание Модуль 2

Анисенков Павел, А-01-23

## Задание

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

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

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

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

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


## Решение

```py
>>>import random
>>>import os
>>>import pickle
>>>os.chdir("C:\\Users\\Professional\\Desktop\\python-labs\\TEMA6")

>>>numbers = {round(random.uniform(-20, 10), 2) for _ in range(40)}
numbers
{-0.48, 1.68, 2.38, 3.86, 4.91, 5.83, 4.2, 7.17, 8.31, 9.92, 9.68, 9.15, 9.52, 0.27, -18.3, -17.27, -17.51, -3.5, -14.69, -0.15, -9.82, -6.91, -18.08, -18.46, -16.27, -15.08, -18.42, -17.19, -13.97, -11.2, -11.48, -9.35, -13.16, -7.77, -6.61, -12.69, -4.01, -3.17, -2.11, -1.49}

file_name = input("Введите имя бинарного файла: ")
Введите имя бинарного файла: popul.txt
file_name = file_name.replace(" ", "")

f=open('popul.txt', 'wb')
pickle.dump(numbers, f)
f.close()

del numbers
numbers
Traceback (most recent call last):
  File "<pyshell#44>", line 1, in <module>
    numbers
NameError: name 'numbers' is not defined. Did you forget to import 'numbers'?

f=open('popul.txt', 'rb')
obj1 = pickle.load(f)
obj1
{-0.48, 1.68, 2.38, 3.86, 4.91, 5.83, 4.2, 7.17, 8.31, 9.92, 9.68, 9.15, 9.52, 0.27, -6.61, -13.16, -0.15, -12.69, -9.35, -3.17, -7.77, -4.01, -18.3, -17.27, -17.51, -18.08, -14.69, -18.46, -16.27, -15.08, -18.42, -9.82, -17.19, -13.97, -6.91, -11.2, -11.48, -3.5, -2.11, -1.49}

if obj1:
    average = sum(obj1) / len(obj1)
    average = round(average, 2)
    print(f"По {len(obj1)} элементам среднее = {average}")
else:
    print("Множество пустое")

    
По 40 элементам среднее = -5.31
```
