# Контрольное задание Модуль 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 "", line 1, in 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 ```