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