форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.2 KiB
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}")