Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

2.2 KiB

M2_8

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

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

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

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

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

import random
import os
import pickle
import math

os.chdir('C:\\Users\\Евгений\\Desktop\\python-labs\\TEMA6')
random.seed(5)

#1)
mnoz = set()
for i in range(40):
    num = round(random.uniform(-20, 10), 2)
    mnoz.add(num)

print(f"Создано множество: {mnoz}")

#2)
fl_name = input('Введите имя бинарного файла: ')
fl_name = fl_name.replace(" ", "")
print(f"Имя Вашего файла: '{fl_name}'")

#3)
fp = open(fl_name, 'wb')
pickle.dump(mnoz, fp)
fp.close()
print(f"Множество записано в Ваш файл: '{fl_name}'")

#4)
del mnoz
print("Множество удалено из памяти")

#5)
try:
    fp = open(fl_name, 'rb')
    load = pickle.load(fp)
    fp.close()
except FileNotFoundError:
    print(f"Файл '{file_name}' не найден")
    
sm = sum(load) / len(load)
sm = round(sm,2)
print(f"По {len(load)} элементам среднее = {sm}")