форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.7 KiB
2.7 KiB
Контрольное задание Модуль 2
Анисенков Павел, А-01-23
Задание
M2_8 Создайте множество с 40 элементами - случайными числами, равномерно распределенными на интервале от -20 до +10. Числа должны быть округлены до двух знаков после точки.
Запросите у пользователя и введите имя бинарного файла для сохранения множества. Если во введенном имени есть пробелы, замените их на пустые строки.
Запишите множество в бинарный файл с указанным именем.
Удалите из памяти созданное множество.
Прочитайте множество из файла и рассчитайте по его элементам среднее значение. Отобразите его на экране по шаблону: " По <число элементов> среднее = <рассчитанное значение>". Выводимое среднее округлить до двух знаков после точки.
Решение
>>>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